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

Android-如果未安装应用程序,则重定向到应用商店(从网站启动),android,Android,我们有一个android应用程序,当用户被重定向到自定义协议时启动。 我们想让用户重定向到google/play应用商店,如果他们的设备上没有安装该应用 对于iOS,我们使用如下内容:。。。然而,这在android上不起作用 这是基本的工作流程: 用户点击我们网站上的链接 用户被重定向到customProtocol://site.com?some=params 如果安装了应用程序,则设备知道何时执行操作 已访问customProtocol://url并启动应用程序。。。然而 如果应用程序没有安装

我们有一个android应用程序,当用户被重定向到自定义协议时启动。 我们想让用户重定向到google/play应用商店,如果他们的设备上没有安装该应用

对于iOS,我们使用如下内容:。。。然而,这在android上不起作用

这是基本的工作流程:

  • 用户点击我们网站上的链接
  • 用户被重定向到
    customProtocol://site.com?some=params
  • 如果安装了应用程序,则设备知道何时执行操作 已访问customProtocol://url并启动应用程序。。。然而 如果应用程序没有安装,android只会给出一个不可用的页面 错误页面;上面针对iOS的解决方案似乎不起作用
  • 关于如何在android上实现这一点,有什么想法吗?这在android上是不可能的吗

    关于如何在android上实现这一点,有什么想法吗

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

    例如,条形码扫描仪应用程序具有:

    
    将执行以下两项操作之一:

  • 如果在Android设备上从浏览器单击链接,并且安装了条形码扫描仪,则用户可以在显示应用程序或显示与链接关联的网页之间进行选择

  • 如果在其他任何地方(没有应用程序的Android设备、其他移动设备、桌面、笔记本等)单击该链接,浏览器将显示该URL的网页,在该网页中,您可以做任何您想做的事情,包括选择性地重定向到Play Store


  • 您可以定义一个服务器端URL,该URL只需重定向到Google Play中的应用程序页面,并在应用程序捕获的页面中使用该URL:

    • 如果安装了应用程序,将打开为其定义意图筛选器的活动
    • 如果未安装应用程序,将找不到意图过滤器,浏览器将打开,用户将被重定向到Google Play(如果他们想打开Play商店或在浏览器中继续,系统会提示)

    试着读一下:@rat,你找到这个问题的合适解决方案了吗?我也有同样的问题,但这个解决方案帮助了我:你找到这个@rat的解决方案了吗?我们最终采用了下面描述的意图方法,我相信这是android的正确解决方案。我将其标记为已接受。有趣的是,当支持在未安装应用程序的情况下打开游戏商店的场景时,无法阻止选择器对话框在1.中显示,这样说是否正确?@Matthew:正确。可以处理URL的所有内容都会出现在选择器中,选择器将是一个(或多个)浏览器加上您的应用程序。自定义方案方法避免了这一点,代价是丢失#2,并可能与其他人的自定义方案发生冲突。我只是在测试此功能,因为我自己也需要此功能,但在安装条形码扫描仪应用程序后,当转到时,它只显示网页而不是打开应用程序。我检查了chrome是否设置为默认应用程序,但不是。有什么提示吗?没关系,谷歌已经破坏了它,这似乎已经不起作用了。我也通过安装扫描器应用程序进行了检查,但它并没有启动显示网页的应用程序。有没有人能解决这个问题请给出最好的答案。。。
      <!-- 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>