我有一个 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://";
不幸的是,这仍然会显示“无法打开页面”错误,但直到最近,可以通过使用此脚本的更细致的版本,以相当用户友好的方式解决此问题。遗憾的是,Apple 在 iOS 9.2 更新中故意打破了这一点,因此自定义 URL 方案实际上对于深度链接来说几乎毫无用处,除非您确定该应用程序已安装在该设备上。
Apple 显然正在尝试尽可能地推广更新的 Universal Links 标准。通用链接允许您使用普通的
http://
URL 访问您网站上的页面(该页面可能是到您所需的后备网页的简单重定向,没有导致“无法打开页面”错误的自定义 URL 触发器),该页面被拦截您的手机并直接发送到您的应用程序(如果已安装)。
需要处理的事情相当多,因此最好的选择可能是像 Branch.io 这样的免费服务(完全披露:我与团队合作)来处理所有技术方面的问题。您可以在此处找到使用 Branch 服务的应用程序示例。
来源https://encoresky.com/blog/universal-links-ios-and-app-links-android-in-react-native/
要在 IOS 上设置通用链接,需要一个“apple-app-site-association”JSON 文件。 要在 Android 上设置通用链接,需要一个“assetlinks.json”JSON 文件。
这两个文件都需要位于网页的根目录中,请在网络上搜索适当的内容。