我已经托管assetlinks文件到我们的域https://ourdomain/.well-known/assetlinks.json也验证了这一点使用https://developers.google.com/digital-asset-links/tools/generator和从android studio的应用程序链接助理,并从这两种方式得到验证的状态。但当我分享调试APK测试它总是在浏览器中打开。我也尝试上传应用程序商店,并从那里下载测试,但它总是在浏览器中打开。
注:对于调试版本,使用了我的笔记本电脑SHA-256,并且一旦应用程序在Play商店上上线,就将托管资产链接文件上的SHA(通过转到Play控制台中的应用程序 Jmeter 板,然后转到发布管理--〉应用程序签名获得SHA-256)更改为我们的域https://ourdomain/.well-known/assetlinks.json
下面是清单文件中使用的代码。
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="abc.test.com" />
</intent-filter>
9条答案
按热度按时间wqnecbli1#
我有同样的问题,并解决了去应用程序信息设置-〉设置为默认-〉支持网址,你会看到你的短链接,所以打开它,它会工作;)
更新:
正如每个人都说它不是一个编程的方式,所以最好的方式是下面的链接说
qco9c6ql2#
Deep-links
在Android 11
或更早版本中工作,但在Android 12
中不工作。但即使添加了
assetlinks.json
文件并添加了所有intent-filters
。Android 12
仍然无法检测到deep-links
。在Android-Manifest
文件中,结果表明方案的tag
需要与数据标签分离,如下所示:plicqrtu3#
您需要添加深层链接验证。请参见https://doordash.engineering/2022/01/25/your-deep-links-might-be-broken-web-intents-and-android-12/
wdebmtf24#
就我而言,这款应用在android 11上运行正常,但在android 12上用android studio编译后就无法运行了。
我测试了制作应用程序;它与应用程序链接工作正常。
对于开发版本,我必须转到应用程序信息-〉默认打开-〉添加链接-〉勾选所有可用链接
这似乎只发生在开发构建中;从Google应用程序商店安装的应用程序会自动选中所有链接。
rvpgvaaj5#
在我的情况下,问题是与存储构建和https://ourdomain/.well-known/assetlinks.json之间的SHA签名不一致,这就是为什么深度链接在Android 12默认情况下被禁用,为了修复它,我们可以将我们的手机与问题构建连接到Android工作室,并运行此命令:
因此,您应该看到类似以下的内容:
接下来,您需要检查签名指纹是否包含在https://ourdomain/.well-known/assetlinks.json中,在我的情况下,它不包含,还要记住,assetlinks.json文件中可以包含几个签名,例如调试、alpha、beta和生产版本,它应该如下所示:
sh7euo9m6#
在域中添加assetlinks.json后,您必须重新安装应用程序(只需卸载应用程序并重新安装),这将工作
u91tlkcl7#
这帮我解决了这个问题:
注意:
android:autoVerify="true"
奇怪的是,这个问题只在某些Android手机上出现,而且在API版本之间不一定一致。API 33上的Pixel 4在没有此修复的情况下工作正常,在API 33上的Pixel 6也不工作。
5sxhfpxr8#
在我的情况下,在完成上述操作(在assetlinks中调试/释放SHA-256密钥,分离scheme标签)后,最终的罪魁祸首是"路径"标签。由于某种原因,验证过程不包括该标签,尽管该标签一直存在于应用中,并且在Android 12之前使用。在我的应用中,这不是什么大问题,因为我忽略了路径。
之前(不工作):
(工作后):
希望能帮到什么人
nx7onnlm9#
将
android:autoVerify="true"
添加到您的意图过滤器。将
android:scheme
移动到单独的data
标记现在,
manifest
中的intents-filter
看起来如下所示:将数字资产链接JSON文件添加到以下URL:
https://{您的域名.名称}/.知名/资产链接. json
播放主机-〉您的应用程序-〉设置(侧菜单选项)-〉应用程序完整性-〉应用程序签名(滚动到底部)
使用以下命令手动运行应用程序链接验证,验证所有步骤是否都已正确实施-www.example.comhttps://developer.android.com/training/app-links/verify-android-applinks#manual-verification
如果您的链接在步骤4中显示为已验证,则现在在设备上安装应用程序,并等待至少2 - 3分钟,然后再单击任何应用程序链接,因为在此期间,Android将通过读取您的清单文件和您上传到网站上的数字资产JSON文件来验证您的应用程序链接。
等待2 - 3分钟后,现在您可以点击应用程序链接,它应该会打开您的应用程序。
希望这有帮助!