检查是否从网页安装了应用程序

Check if app is installed from webpage

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

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

在此先感谢您的帮助。

说实话,这对你自己实施来说有点痛苦。如果没有大量令人讨厌的边缘情况,就没有简单的方法来处理所有事情,最明显的是“无法打开页面”错误,如果用户没有安装您的应用程序,他们将会看到。直到 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://";

不幸的是,这仍然会显示 'Cannot Open Page' 错误,但直到最近,才有可能通过使用此脚本的更细微版本,以合理的用户友好方式解决此问题。遗憾的是,Apple intentionally broke that with the iOS 9.2 update,所以自定义 URL 方案现在对于深度链接实际上几乎没有用,除非你 确定 该应用程序已经安装在该设备上。

Apple 显然是在尽可能地推动更新的 Universal Links 标准。 Universal Links 允许您使用正常的 http:// URL 到您网站上的页面(该页面可以简单地重定向到您想要的后备网页,而无需自定义 URL 触发器导致 'Cannot Open Page' 错误),它会被您的 phone 拦截并在安装后直接发送到您的应用中。

要处理的事情很多,所以最好的选择可能是像 Branch.io (full disclosure: I work with the team) to take care of all the technical aspects. You can find examples of apps using the Branch service here 这样的免费服务。