我们有一个由第三方管理的应用程序,我们可以从我们自己的域上托管的网站之一启动该应用程序。该应用程序在一段时间内运行良好,但在过去几个月的某个时候,它开始无法在某些Android 版本。
它不会启动应用程序,而是会转到浏览器中的 404 页面。
这是 AndroidManifest 中的相关 intent-filter
<intent-filter>
<data scheme="http"
host="m.ourdomain.net"
path="/OurApp"/>
<action name="android.intent.action.VIEW"/>
<category name="android.intent.category.DEFAULT"/>
<category name="android.intent.category.BROWSABLE"/>
</intent-filter>
我们网站上的链接如下所示:
string linkAddress = "http://m.ourdomain.net/OurApp?Location=" + locName + "&IP_Address=" + ip;
调用者:
Response.Redirect(linkAddress);
我能够在多种设备上进行测试:
它适用于 Android 版本 4.0.4 (Moto Bionic) 和 4.1.2 (Moto RAZR)。
它不适用于版本 2.3.5 (HTC EVO) 和 4.1.1 (HTC DNA)。
(会不会是HTC的事?)
我还在 4.1.1 设备上使用 Dolphin 和 FireFox 对此进行了测试,问题仍然存在。
我注意到在它运行的设备上,我们的应用程序被设置为“默认应用程序”。如果我从“默认应用程序”中将其删除,然后单击我们的链接,则会出现一个小弹出窗口,询问我是否想使用浏览器或我们的应用程序打开该链接。
在它不工作的设备上不会发生这种情况。
有人知道为什么会发生这种情况,以及我该如何解决它吗?
最佳答案
Could it be something with HTC?
对于 HTC DNA 来说,是的。或者,也许更准确地说,这是苹果公司的事情。 HTC 选择破解他们被起诉的一项特定苹果专利的一些变通办法。我有two博客posts从去年开始描述正在发生的事情。
可以想象,他们也将黑客行为“反向移植”到了 EVO 上。
关于Android 自定义 URI 方案无法在某些版本的 Android 上启动应用程序,但适用于其他版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15642080/