如何解决Android-应用程序链接的工作方式类似于深层链接
我正在我的应用程序中设置应用程序链接,对此我有一个疑问。
我的intent-filter
如下所示,您可以看到我启用了属性为android:autoVerify="true"
的应用链接:
<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="example.com" android:scheme="https" />
</intent-filter>
- 我
https://example.com/.well-kNown/assetlinks.json
已公开托管并可以访问 - 我在应用中还有其他域,并且所有域都发布了
assetlinks.json
文件 - 每个域的
assetlinks.json
文件声明调试和发行版本的关系,包名称,SHA 256。 - 我已验证adb日志,且应用链接验证为
success
现在我有另一个应用程序“ X”,该应用程序截取相同的intent-filter
数据。当我单击https://example.com/hello
时,Android系统会启动带有浏览器和“ X”应用程序选项的Intent选择器,因为我的应用程序无法处理/hello
路径,基本上表现为常规的深层链接。
我的问题是:当我的应用程序已申请example.com
域的所有权并正在使用应用程序链接时,为什么Android System将“ X”应用程序显示为选项,而不是仅在浏览器中启动https://example.com/hello
?我们没有为/hello
路径实现深层链接,我们希望直接在浏览器中启动它,而不是与其他应用程序一起启动。
有没有办法做到这一点?我已经在线阅读了很多文档,找不到任何答案。
解决方法
如果您想硬链接到应用程序并在Chrome中打开链接,或者将其设置为用户浏览器的当前设置,则可以尝试以下操作:
public void supportLink() {
Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com/"));
startActivity(browserIntent);
}
然后,如果要让用户单击应用程序中的菜单项来启动链接,则可以调用上述方法。
如果要在活动视图中使用按钮,请使用以下方法:
public void startMyWebLink(View view) {
supportLink();
}
或
public void startMyWebLink(View view) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com/"));
startActivity(browserIntent);
}
也请参阅此以进一步阅读:
How can I open a URL in Android's web browser from my application?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。