【问题标题】:Do I need to include <meta-data> for App Links?我需要为应用链接包含 <meta-data> 吗?
【发布时间】:2018-11-01 16:34:34
【问题描述】:

在我添加元数据标签之前,我的 Android 应用链接功能无法使用:

<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements"/>

这是我阅读herehere 的建议。但是Google official documentation 没有提到这一点。

那么......真的需要它还是我做错了什么?

(当我提到应用链接不起作用时,我应该注意深层链接有效,但 Android 仍显示“默认应用选择器对话框”)

更新 #1: 我正在测试 Android 8.1。我已经上传了.well-known/assetlinks.json 文件。这是我处理深层链接的活动:

<activity
    android:name=".LinkDispatcherActivity"
    <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="http" />
        <data android:scheme="https" />
        <data android:host="@string/www_app_domain" />
    </intent-filter>
</activity>

【问题讨论】:

  • 我没有这样的标签,也没有发现任何问题。您在哪个 Android 版本上进行测试?你的意图过滤器是什么样的?您是否已在服务器上完成必要的设置以使验证成功?
  • 查看我的更新详情

标签: android applinks


【解决方案1】:

当您使用该元标记时,Android 将在安装时验证“所有权”。只有在您的清单中使用该标签,您的应用才会在没有任何请求的情况下打开。我说的是选择器,您要打开哪个应用程序来处理您在清单中定义的 URL。

您可以查看此命令来获取验证结果,它可以帮助您了解问题所在:

adb shell dumpsys package domain-preferred-apps

另请参阅相关文档:Verify Android App Links

【讨论】:

  • 您正在描述应用链接功能。基本上你是说 需要让应用程序链接工作。如果是这样,为什么官方文档没有提到呢?
  • 嗯,我暂时离开了这个话题,我确信在某个地方有一个参考,这是必需的。然而,他们也有可能忘记了它。如果您确定确实缺少此功能,请打开需要更新文档的错误报告。
  • 也许过去需要,但现在不再需要了。我相信我找到了问题,请查看我自己对此问题的回复。
【解决方案2】:

好的,在@Michael 回复之后,我想我找到了原因。

网站将 http 重定向到 https 流量。一旦我删除了 &lt;data android:scheme="http" /&gt; ,我就可以评论 &lt;meta-data&gt; 标记。事实上,在他们提到的文档中

仅当系统为所有找到匹配的数字资产链接文件时 清单中的主机然后将您的应用程序设置为默认应用程序 指定 URL 模式的处理程序。

我想这也适用于所有“主机”和“方案”,即使包含 &lt;meta-data&gt; 会覆盖该规则。

谢谢大家的回复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2012-02-16
    相关资源
    最近更新 更多