我需要为 App Links 添加 <meta-data> 吗?
Do I need to include <meta-data> for App Links?
我的 Android 应用链接功能在我添加元数据标签之前无法使用:
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements"/>
这是我阅读的建议 here and here. However that is not mentioned by Google official documentation。
所以...真的需要它还是我做错了什么?
(当我提到 App Links 不工作时,我应该注意到 deep link 工作但 Android 仍然显示 "default app chooser dialog")
更新#1:
我正在 Android 8.1 上进行测试。我已经上传了 .well-known/assetlinks.json
文件。这是我的 activity 处理深度 links:
<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 将在安装时验证 "ownership"。只有在您的清单中使用该标签,您的应用程序才会在没有任何请求的情况下打开。我说的是选择器,您想打开哪个应用程序来处理您在清单中定义的 url。
您可以查看此命令以获取验证结果,它可能有助于您了解问题所在:
adb shell dumpsys package domain-preferred-apps
另请参阅相关文档:Verify Android App Links。
好的,在@Michael 回复后我想我找到了原因。
该网站将 http 流量重定向到 https 流量。一旦我删除 <data android:scheme="http" />
,我就可以评论 <meta-data>
标签。事实上,他们在文档中提到
Only if the system finds a matching Digital Asset Links file for all
hosts in the manifest does it then establish your app as the default
handler for the specified URL patterns.
我想这也适用于所有 "hosts" 和 "scheme",即使包含 <meta-data>
会有点覆盖该规则。
谢谢大家的回复。
我的 Android 应用链接功能在我添加元数据标签之前无法使用:
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements"/>
这是我阅读的建议 here and here. However that is not mentioned by Google official documentation。
所以...真的需要它还是我做错了什么?
(当我提到 App Links 不工作时,我应该注意到 deep link 工作但 Android 仍然显示 "default app chooser dialog")
更新#1:
我正在 Android 8.1 上进行测试。我已经上传了 .well-known/assetlinks.json
文件。这是我的 activity 处理深度 links:
<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 将在安装时验证 "ownership"。只有在您的清单中使用该标签,您的应用程序才会在没有任何请求的情况下打开。我说的是选择器,您想打开哪个应用程序来处理您在清单中定义的 url。
您可以查看此命令以获取验证结果,它可能有助于您了解问题所在:
adb shell dumpsys package domain-preferred-apps
另请参阅相关文档:Verify Android App Links。
好的,在@Michael 回复后我想我找到了原因。
该网站将 http 流量重定向到 https 流量。一旦我删除 <data android:scheme="http" />
,我就可以评论 <meta-data>
标签。事实上,他们在文档中提到
Only if the system finds a matching Digital Asset Links file for all hosts in the manifest does it then establish your app as the default handler for the specified URL patterns.
我想这也适用于所有 "hosts" 和 "scheme",即使包含 <meta-data>
会有点覆盖该规则。
谢谢大家的回复。