您的位置:首页 > 移动开发

App Indexing

2015-08-28 17:39 405 查看

什么是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/g23422" 开头的url -->
<data android:scheme="http"
android:host="example.com"
android:pathPrefix=".*"
<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进入的?

方法如下:

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: