【问题标题】:Check if app is installed from webpage检查是否从网页安装了应用程序
【发布时间】:2017-07-04 10:49:11
【问题描述】:

我有一个 iOS 和 Android 应用程序,我正在构建一个相应的网站。我希望该网页(如果使用移动设备打开)打开应用程序或其相应的应用程序商店页面(不使用 Facebook 应用程序链接)。 在应用程序端一切正常,包括 url 架构。

有人知道如何在没有外部服务的情况下使用 HTML 和 JS 来实现这个过程吗?

提前感谢您的帮助。

【问题讨论】:

  • 您应该能够查看 User Agent 并查看他们是否通过手机访问您的站点。即便如此,自动重定向到 App Store 页面还是很糟糕的用户体验(在我看来)。
  • 感谢您的建议@JayGould,我可能不会将用户重定向到应用商店。我会试试你建议的解决方案。
  • 问题是如果我重定向用户,但他没有应用程序,我会在浏览器中收到错误
  • 没问题。大多数网站倾向于“我们看到您正在使用 {Phone},您想在 {App} 中浏览 {Site} 吗?”

标签: javascript html web applinks


【解决方案1】:

老实说,自己实施这有点痛苦。如果没有大量令人讨厌的边缘情况,就没有简单的方法来处理所有事情,最明显的是“无法打开页面”错误用户会看到他们是否没有安装您的应用程序。直到 iOS 9,合理的基本实现是将这样的 JavaScript 重定向放入您网站上的专用重定向页面:

setTimeout(function() {
  window.location = "https://yourdomain.com";
}, 25);

// If "yourapp://" is registered, the user will see a dialog
// asking if they want to open your app. If they agree, your
// app will launch immediately and the timer won't fire.
// If not installed, you'll get an ugly "Cannot Open Page" 
// dialogue and your fallback page will open when the timer expires.

window.location = "yourapp://";

不幸的是,这仍然会显示“无法打开页面”错误,但直到最近,通过使用此脚本的更细微的版本,以合理的用户友好方式解决此问题是可能的。可悲的是,Apple intentionally broke that with the iOS 9.2 update,因此自定义 URL 方案现在实际上对于深度链接几乎没有用处,除非您确定该应用已安装在该设备上。

Apple 显然正在尽可能地推动更新的Universal Links 标准。 Universal Links 允许您使用普通的http:// URL 到您网站上的某个页面(该页面可能是一个简单的重定向到您想要的后备网页,没有导致“无法打开页面”错误的自定义 URL 触发器),它被拦截您的手机并直接发送到您的应用(如果已安装)。

这需要处理很多事情,所以最好的选择可能是像Branch.io 这样的免费服务(完全披露:我与团队合作)来处理所有技术方面的问题。您可以找到使用分支服务here 的应用示例。

【讨论】:

  • 请允许我在这里再问一个问题;我们需要显示一个用户友好的横幅来宣传我们的应用程序的安装,当然如果它尚未安装。你有如何实现这一目标的方向吗?
  • 嗨@AdrianFöder!看看this documentation — 应该对您的要求有所帮助。
猜你喜欢
  • 2019-01-04
  • 1970-01-01
  • 2013-09-16
  • 2011-10-14
  • 2012-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多