在安卓12或更高版本中通过链接打开应用程序出现问题。
在低版本的安卓上一切正常。
当我查看“应用信息”->“默认打开方式”屏幕时,我看到未批准的链接。
当我将该链接作为受支持的Web地址之一并批准后,通过链接打开应用程序就可以正常工作。
我已经阅读了有关验证安卓文档内的意图过滤器的内容,对我来说一切看起来都很好。
https://developer.android.com/training/app-links/verify-site-associations#add-intent-filters
我已经将 .well-known/assetlinks.json 添加到我的域名下 https://my.domain.net/.well-known/assetlinks.json .well-known/assetlinks.json 的内容(使用 https://developers.google.com/digital-asset-links/tools/generator 生成和检查)如下:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" : { "namespace": "android_app", "package_name": "my.package.name",
"sha256_cert_fingerprints": ["SHA_256"] }
}]
已经三次确认使用正确的SHA_256。
还使用“语句列表生成器和测试工具”测试了.json文件,链接如上所述。
AndroidManifest.xml中的意图过滤器
<intent-filter
android:autoVerify="true"
android:label="@string/login_to_app">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="my.domain.net"
android:pathPrefix="/${dynamicVar}/our/application/"
android:scheme="https" />
</intent-filter>
我还将应用程序上传到Play 商店,以确保这不是SHA证书或 Play 商店相关的问题,但那里也没有任何区别。
我检查了我的应用程序包名称,并且对于内部测试和调试都是正确的。
我还尝试了添加每种可能的应用程序包名称组合以确保正确性。
简而言之: 由于不支持的 Web 地址,通过 Android 12 和更高版本上的链接打开应用程序无法工作。
我知道链接需要使用 .well-known/assetlinks.json 进行验证。当我手动检查受支持的 Web 地址时,它可以完美地工作,但这并非最终解决方案。
我无法想出自己漏掉了什么。
有人知道我在这里做错了什么吗?