gpt4 book ai didi

android - 通过浏览器中的 URL 打开 Android 应用程序

转载 作者:行者123 更新时间:2023-11-29 17:35:59 24 4
gpt4 key购买 nike

好的,所以我知道还不止这些。我在这里阅读了很多答案,它们都说了同样的话,但它对我不起作用。我希望能够使用来自浏览器的带有自定义 URL 方案的链接打开 Android 应用程序。首先,我使用的是模拟器(实际上是 Genymotion)所以我不知道这是否与它有任何关系。我看到的答案一直在说我需要的只是与此类似的东西:

<intent-filter>
<data android:scheme="myapp" android:host="hello"/>
<action android:name="ANDROID.INTENT.ACTION.VIEW"/>
<category android:name="ANDROID.INTENT.CATEGORY.BROWSABLE"/>
<category android:name="ANDROID.INTENT.CATEGORY.DEFAULT"/>
</intent-filter>

我把它放在一个新的空白 Activity 上,而不是主要 Activity 。

如果我理解正确,任何以 myapp://hello 开头的 URL 都将使用该 Intent 过滤器打开 Activity 。但是,无论我尝试什么,我都会在浏览器中收到 ERR_UNKNOWN_URL_SCHEME。这是普通的 Android 浏览器,因为我不能将 Chrome 放在 Genymotion 上(至少不是免费版本)。这是需要 Chrome 的东西吗?这是只能在实际设备上完成的事情吗?我做错了什么吗?

最佳答案

这里有几件事在起作用。

首先,正如 Blackbelt 指出的那样,Android 区分大小写,大多数编程语言和开发环境也是如此。您需要按照这些操作和类别的文档将其更改为正确的大小写:

<intent-filter>
<data android:scheme="myapp" android:host="hello"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

其次,并非所有 Web 浏览器都以相同的方式处理像 myapp:// 这样的方案。我不知道任何司法管辖区的书籍上有任何法律强制开发商遵守它们。您将遇到三种基本模式:

  • 一些浏览器可能处理得很好

  • 某些浏览器会在页面链接中使用此类 URL 时处理它们,但如果在地址栏中键入 URL 则不会处理

  • 有些浏览器不会尝试寻找一个 Activity 来处理它们,只会一直失败

Google 的首选替代方案是让您使用 httphttps 方案,主机和路径由您控制。某些浏览器将始终打开网页,但其他浏览器会检查,查看是否有宣传支持该 URL 的 Activity ,并让用户选择如何处理它。 Android 的“M”版本将提供更多可以绕过选择器的 Hook ("App Links")。此外,其他应用程序(例如,短信客户端、电子邮件客户端)通常会使 http 链接可点击,允许用户选择打开您的应用程序,而很少有应用程序会知道 myapp://hello 以同样的方式有意义。

关于android - 通过浏览器中的 URL 打开 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30546521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com