gpt4 book ai didi

在浏览器中键入时,Android 自定义 URI 方案编码不正确

转载 作者:行者123 更新时间:2023-11-29 14:03:11 26 4
gpt4 key购买 nike

我正在编写我的 android 应用程序,我想定义一个自定义 URI 方案,以便用户可以通过在浏览器中键入 URI 来访问我的应用程序,例如:myapps://cate=1&id=3

我在我的应用程序中成功实现了这一点,但我发现对于某些设备,浏览器对链接的处理方式不同。

在我的 HTC Flyer 中,它可以正确打开我的应用程序,但在 Samsung Galaxy Ace 中,浏览器将链接转换为已编码的 myapps%3A%2F%2Fcate=1%26id=3,它只是用谷歌搜索“myapps://cate=1&id=3”,而不是打开应用程序。

我在 list 中这样定义 intent 过滤器:

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

关于这个问题有什么帮助吗?谢谢

已编辑

我刚刚看了android浏览器的源代码,它定义了它接受什么方案:

protected static final Pattern ACCEPTED_URI_SCHEMA = Pattern.compile(
"(?i)" + // switch on case insensitive matching
"(" + // begin group for schema
"(?:http|https|file):\\/\\/" +
"|(?:inline|data|about|content|javascript):" +
")" +
"(.*)" );

现在我明白为什么自定义方案不起作用了!任何应用程序都应该只捕获方案:http、https、file、inline、data、about、content、javascript。

最佳答案

为什么它必须是自定义 uri?

我会尝试使用标准 URL,然后为它定义一个广播接收器。

本质上就是这样http://youtube.comhttp://maps.google.com工作我想。只需尝试在 Galaxy Ace 的 Android 浏览器中输入这两个 URL。

关于在浏览器中键入时,Android 自定义 URI 方案编码不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8463794/

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