动态链接(Android App Links)不提示“打开方式”Android 6.0+

Posted

技术标签:

【中文标题】动态链接(Android App Links)不提示“打开方式”Android 6.0+【英文标题】:Dynamic Links (Android App Links) not to prompt "open with" Android 6.0+ 【发布时间】:2018-08-17 14:37:48 【问题描述】:

如何进行设置,以便动态链接(来自 Fireabase)直接打开应用,而不是先要求在浏览器或应用之间进行选择。

我已设置 Firebase 动态链接并将证书指纹 sha256 添加到 firebase 项目设置中。选择任一选项(浏览器或应用程序)最终会打开应用程序,但它仍然会询问。

据我所知,这可以通过 android 6.0 及更高版本的 Android App Links 实现。

AndroidManifest.xml 中的意图过滤器

<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:host="my-custom-subdomain.page.link" android:scheme="http"/>
             <data android:host="my-custom-subdomain.page.link" android:scheme="https"/>
</intent-filter>

有什么建议吗?

【问题讨论】:

【参考方案1】:

如果没有显示任何代码,这很难说,但要使其正常工作,您必须将 intent-filter 中的 android:autoVerify 标记设置为 true

除了您需要按照以下方向部署和assetlinks.json 之外>https://domain.name/.well-known/ 必须在您的意图过滤器支持的所有域中执行此操作。

流程解释清楚here

PD:这是assetlinks.json的示例

[
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": 
  "namespace": "android_app",
  "package_name": "com.example",
  "sha256_cert_fingerprints":

  ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  
]

【讨论】:

谢谢 Marco,你说的很准确。我不太清楚上下文,我正在尝试使用 Firebase 的动态链接服务来做到这一点。 android:autoVerify="true" 在我的清单中设置。我确实得到了assetlinks.json,但是我不能在Firebase的page.link域上设置它,我只能在项目的设置中添加sha256,我做了。 哦动态链接.. 明白了。您是否访问过您生成的 page.link 域的知名路径?我很确定 FB 会上传资产链接 我已经检查了路径,它就在那里。设法找到问题,在 App Links Assistent 中生成数字资产文件后,我忘记按“链接和验证”按钮,这样做并重新安装应用程序解决了它,现在它按预期打开。谢谢!【参考方案2】:

我的问题是在 App Links Assistent 中按下链接和验证按钮。

对于其他面临类似问题的人,检查事项:

如果在清单中添加了意图过滤器;

如果将 corect sha256 添加到 Firebase 项目中;

如果您按下“链接和验证按钮”; 如果您使用新清单卸载并重新安装了该应用

【讨论】:

以上是关于动态链接(Android App Links)不提示“打开方式”Android 6.0+的主要内容,如果未能解决你的问题,请参考以下文章

Handling App Links

Firebase 动态链接,不起作用

iOS通用链接(Universal Links)配置

如何通过两个不同的链接创建 Firebase 动态链接?

iOS 9 通用链接(Universal Links)

Android App Links - 排除特定子目录