Android:Intent-Filter 和后台网页
Posted
技术标签:
【中文标题】Android:Intent-Filter 和后台网页【英文标题】:Android: Intent-Filter and Web Page in Background 【发布时间】:2014-08-19 23:14:25 【问题描述】:我有一个网页,当然我想使用 Intent-filter 检测我的 android 应用(在后台),所以我的应用和我的页面分开工作。
我的 android 应用程序使用 intent-filter 处理类似以下 URL 的 URL:
myApp://sample?param=1
所以我的页面中有一个<a>
标签,我使用 javascript(自动)点击了它:
<a href="myApp://sample?param=1" id="myAppLink"></a>
当我没有安装我的应用程序时(例如在 PC 或 ios 中),一切正常。
在这种情况下,浏览器会重定向到myApp://sample?param=1
(自然)。
有什么方法(我认为是 JavaScript)可以检测应用程序是否未处理我的 URL,然后我停止自动点击?或者其他方式(当然是技巧)知道应用程序是否安装然后我调用点击事件?或者我的问题的其他解决方法?
或者我可以使用 AJAX 或 JSONP 调用我的 URL (myApp://sample?param=1
) 以便我的应用程序检测到它吗?
(我已经尝试过使用 jQuery Ajax 没有机会。我不知道意图过滤器是否可以处理 Ajax 请求。)
【问题讨论】:
【参考方案1】:很遗憾,由于隐私问题,您无法通过网络检查设备上是否安装了任何应用程序。
查看类似的question。
【讨论】:
当然我们无法检查。但如果有人有任何想法,我需要一种巧妙的方式来使用意图过滤器......【参考方案2】:作为一种解决方法,您可以使用 http:// 而不是 myApp:// 来识别指向您的服务器链接的意图:
<data android:host="yourhost.com" data android:path="/apath" android:scheme="http" />
为了……
<a href="http://yourhost.com/apath?param=1" id="myAppLink"></a>
如果您的应用存在,它将重定向到该应用(用户需要第一次确认),如果不存在,它将调用您托管页面的链接,该页面将为桌面正确响应(使用 php、java、 nodejs,或其他)。
【讨论】:
以上是关于Android:Intent-Filter 和后台网页的主要内容,如果未能解决你的问题,请参考以下文章
android基础:Intents 和 intent-filter 的匹配规则
行为变更 | 了解 Android 12 中的 intent-filter
行为变更 | 了解 Android 12 中的 intent-filter