25

在 Android 设备上,打开指向 Google Play 应用程序的链接:

https://play.google.com/store/apps/details?id=com.rovio.angrybirds&hl=en

默认情况下会自动打开 Google Play 应用。

但是,如果您有一个重定向到 Google Play 链接的链接,设备会打开浏览器,然后导航到 Google Play 的浏览器版本。为什么会出现这种行为?

不幸的是,我不能将 market:// 与可以打开 Play 的 Intent 一起使用,我只能控制一个网络链接。

编辑: 似乎如果我将链接重定向到市场:// url,它可以在设备上使用 Google Play 打开。

如果在浏览器中打开链接,尽管浏览器不支持 market://,但它能够以某种方式重定向到 Google Play 的浏览器版本。

4

3 回答 3

38

采用target="_top"

 <a href="market://details?id={package_name}" target="_top">App</a>
于 2013-12-11T03:02:44.100 回答
5

基本上,https://play .... 只是一个 Web URL。我怀疑它的工作方式(这是 Android 的标准工作方式)是:

  1. Market Play 应用程序注册为能够处理此类 URL(您可以注册以处理某些意图,并应用过滤器来进一步定义您的应用程序将处理的内容)。
  2. 该应用程序使用https://play ... URL启动 Intent
  3. 向用户显示已注册以处理该意图的所有应用程序的列表。因此,用户能够启动 Play 应用程序 - 第一次(在手机上)启动 https:\play... 意图
  4. 当用户选择哪个应用程序来实现 Intent 时,如果他们选择浏览器(然后将其设置为默认值) - 浏览器将启动(并且下次不会为用户提供选项)。
  5. 此默认值可以是:“Settings\Applications\All - 然后找到浏览器应用程序,选择它,然后选择清除默认值”

您可以根据市场意图直接调用 Play Market,也可以使用 URL 方式。我个人使用 URL 方式——尽管使用它有一些额外的挑战(比如处理这个特定问题)。

于 2012-05-01T17:30:06.367 回答
1

我的猜测是这种行为是由谷歌强制执行的。重定向可能会使恶意的开发人员更容易安装他们的应用程序。Google 可能会检查用户是否来自重定向,如果是,则不会触发 Play 应用程序的打开。

于 2012-05-01T17:06:44.047 回答