App Indexing

什么是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;
    }


鉴于您提供的引用内容,关于IDEA的索引问题,有几种解决方法可以尝试。首先,可以尝试使用"Invalidate Caches"功能来清除缓存。这可以通过点击"File",然后选择"Invalidate Caches"来完成。\[1\]如果这个方法不起作用,可以尝试手动清除缓存。进入到C:\Users\ASUS\AppData\Local\JetBrains\IntelliJIdea2021.2文件夹,然后删除"caches"和"index"文件夹。\[2\]另外,您还可以尝试升级IDEA的版本,因为在2021.3.2版本之后,该问题可能已经得到解决。\[3\]最后,您还可以尝试更换Maven的使用方式,不使用IDEA集成的Maven,而是使用阿里镜像库下载Maven文件包,并选择"settings-aliyun.xml"进行配置。这样可以避免在下载依赖时遇到网络不稳定的问题。\[3\]希望这些方法能够帮助您解决IDEA的索引问题。 #### 引用[.reference_title] - *1* [【小技巧】IDEA 卡住不动的解决办法](https://blog.csdn.net/LBWNB_Java/article/details/121065784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [idea一直indexing JDK卡死解决方案](https://blog.csdn.net/Hcy_code/article/details/121484580)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [idea每次打开总是一直加载indexing library‘maven xxx‘‘,Scanning file to index,如何解决?](https://blog.csdn.net/u014103971/article/details/127979827)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值