Android - 如果未安装应用程序,则重定向存储(从网站启动)

时间:2012-11-22 18:39:35

标签: android

我们有一个Android应用程序,在用户被重定向到自定义协议时启动。 如果用户的设备上未安装该应用,我们希望用户重定向到该应用的google / play商店。

对于iOS,我们使用类似这样的内容:Is it possible to register a http+domain-based URL Scheme for iPhone apps, like YouTube and Maps? ...但是这不适用于Android。

这是基本的工作流程:

  1. 用户点击我们网站上的链接
  2. 用户被重定向到customProtocol://site.com?some=params
  3. 如果安装了应用程序,则设备知道该怎么做 customProtocol:// url被访问,应用程序启动...但是 如果没有安装应用程序android只提供一个页面不可用 错误页面;上面的iOS解决方案似乎不起作用。
  4. 关于我们如何在Android上实现这一点的任何想法?它在Android上是不可能的吗?

2 个答案:

答案 0 :(得分:21)

  

关于我们如何在Android上实现这一点的任何想法?

不使用“自定义协议”(或者更准确地说,是“自定义方案”)。 Android上的模式是您使用您控制的URL。

例如,条形码扫描仪应用具有the following defined for its main scanning activity

  <!-- Allow web apps to launch Barcode Scanner by linking to http://zxing.appspot.com/scan. -->
  <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="zxing.appspot.com" android:path="/scan"/>
  </intent-filter>

然后,http://zxing.appspot.com/scan的任何链接都会执行以下两项操作之一:

  1. 如果从Android设备上的浏览器点击链接并安装了条形码扫描程序,则用户可以选择显示应用程序还是显示与链接关联的网页

  2. 如果在其他地方点击链接(没有应用的Android设备,其他移动设备,桌面,笔记本等),浏览器会显示该网址的网页,您可以在其中执行任何操作想要,包括可选择重定向到Play商店

答案 1 :(得分:3)

您可以定义一个服务器端网址,只需重定向到Google Play中的应用程序页面,然后在intent filter中使用该网址即可由您的应用程序捕获:

  • 如果您的应用程序已安装,则将打开您定义intent-filter的活动。
  • 如果您的应用程序未安装,则无法找到intent-filter,浏览器将被打开,用户将被重定向到Google Play(如果他们想要打开Play商店或继续浏览器,则会出现提示)