问题描述
我正在编写Android应用程序,当用户在Android中打开标准的网络浏览器并导航到我的网页(http://mywebpage.com)并按一些按钮(“测试按钮”)时,我需要向应用程序中添加一些功能。页面必须检测我的应用程序是否已经安装在Android手机上。
我要如何解决这个问题
我已经阅读了许多文章,并在此处提出了一些问题,并且我了解我无法做一些事情,以便网页可以了解我的应用程序是否已安装在手机上,我可以做的一件事就是在其中编写一些代码清单文件
<a href="my.special.scheme://other/parameters/here">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="my.special.scheme" />
</intent-filter>
但这对我来说还不够,好像当用户按下我网站上的链接时手机上没有安装应用程序时,它会显示404错误,提示没有这样的URL
my.special.scheme://other/parameters/here
,我想为此找到另一个解决方案,并且这是我的想法。解决问题的方法
当用户按下链接
<a href="my.special.scheme://other/parameters/here">
并显示404错误时,如何从网站上引发一些异常。我的意思是我可以进行一些AJAX或JAVA脚本调用以确定该URL引用了无效链接,并在这种情况下重定向到另一个链接。解决问题2
我这样使用意图过滤器
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="commonsware.com" android:path="LaunchApp"/>
</intent-filter>
并在这样的网页上放置链接
<a href="commonsware.com/LaunchApp">Start App</a>.
题
当真实URL不存在或出现404错误时,如何重定向到指定的URL。请提供示例,因为我不擅长AJAX和JAVA脚本编码
最佳答案
根据黛安·哈克伯恩(Diane Hackborn)here的回答,我已经做了类似的事情:
除非已注册,否则请不要使用该方案。
计划对于宇宙是全球性的,因为您将把这个
通过您的网页在宇宙中传播,您要遵循以下规则
他们。
您可以采用的另一种方法是只创建一个
想要启动,并打印Intent.toUri()的结果以获取
在链接中使用的字符串。 (这应该是一个意图:URI。)
然后,您可能只想按照
Intent将使用的标准命名约定。你甚至可以
使用Intent.setPackage()确保只有您的应用可以
从链接启动(如果需要)。 (请注意,您不能使用
出于安全原因,请使用Intent.setComponent()。)
我构建了一个Intent以启动所需的活动,然后按照说明将Intent转换为URI并将其打印为stdout。我在网页中使用的URI(以intent:
开头)是这样的:<a href="intent:/...">Start App</a>
。
如果安装了应用程序,则这将启动活动,否则将启动Play-Store应用程序,该应用程序已显示该应用程序的页面(如果在Play-Store中找到)供用户下载和安装。