码迷,mamicode.com
首页 > 移动开发 > 详细

App Indexing

时间:2015-08-28 19:55:12      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

什么是App Indexing?

将网站上的网页和智能手机相关联。已安装了相应软件的用户可以通过网站直接打开应用内容。

详细信息请参见官网https://developers.google.com/app-indexing/webmasters/app
官网上写的非常详细,可以看中文的。


代码实现

HTML网页中要提供App Indexing的网址是http://example.com/淘宝店铺ID 淘宝店铺ID是不确定的值。

在AndroidMenifest.xml中声明Intent过滤器。

<activity android:name="com.example.android.GizmosActivity"
           android:label="@string/title_gizmos" >
     <intent-filter android:label="@string/filter_title_viewgizmos">
         <action android:name="android.intent.action.VIEW" />
         
         <!-- 可以获取包含 "http://example.com/gizmos" 开头的url -->
         <data android:scheme="http"
               android:host=".*"
               android:pathPrefix="/gizmos" />
         <category android:name="android.intent.category.DEFAULT" />
         <category android:name="android.intent.category.BROWSABLE" />
     </intent-filter>
 </activity>

可以使用下面两种方式测试是否能跳转到淘宝店铺ID为【g23422】的app页面:

adb shell am start -a android.intent.action.VIEW -d "http://example.com/g23422" com.example.android
或者在HTML网页上添加:

<a href="intent://example.com/gizmos#Intent;scheme=http;package=com.example.android;end;">
  http://example.com/g23422
</a>

App Indexing的测试方法

https://developers.google.com/app-indexing/webmasters/test中输入【android-app://packageName/scheme/host/pathPrefix】。详情请参考下图:

技术分享



如何判断应用从App Indexing进入的?

</pre></p><p><span style="font-size:10px;">方法如下:</span><pre name="code" class="java">    public boolean isCallByAppIndexing(Activity activity) {
        Intent intent = activity.getIntent();

        Uri uri = intent.getData();
        if (uri != null) {
            String scheme = uri.getScheme();
            String host = uri.getHost();
            if (scheme != null && scheme.equals("http")) {
                if (host != null && host.equals("example.com")) {
                    return true;
                }
            }
        }

        return false;
    }

获取淘宝店铺ID的方法:

    public String getShopId(Activity activity) {
        String shopId = null;
        Uri uri = activity.getIntent().getData();
        if (uri != null) {
            List<String> list = uri.getPathSegments();
            shopId = (list == null ? null : list.get(0));
        }
        return shopId;
    }


版权声明:本文为博主原创文章,未经博主允许不得转载。

App Indexing

标签:

原文地址:http://blog.csdn.net/liucaoye/article/details/48054167

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!