给您一些背景信息:目标是通过链接(深层链接)共享我们应用程序中的对象,但是,当在 Facebook/Messenger/Instagram 上发送链接并且当我们尝试打开它时,它不会打开应用程序,因为这些应用程序使用内部浏览器,该浏览器直接重定向到 Web 视图(而不是我们的应用程序),为了克服这个问题,我们希望在 Web 视图上放置一个允许打开应用程序的按钮。
在其他应用程序(例如“消息”或“便笺”)上共享链接时,通用链接可以正常工作
我们正在尝试从不属于我们的应用程序打开通用链接,而无需在Web视图中打开它,或者找到一种方法让Web视图通过JS按钮打开通用链接。无需通过 Firebase 动态链接,也无需通过自定义方案。
我们正在尝试在 iOS 上解决这个问题,我们的应用程序是用 Dart 和 Flutter 制作的,但我们遵循原生 iOS 的通用链接方式。 (在 XCode 中的关联域中注册域,将
.well-known/apple-app-site-association
文件添加到我们域根下的 HTTPS 安全网络空间中)
也卡在这个上了。到目前为止,我见过的唯一解决方案(尚未尝试过)是,当您检测到自己处于不可深层链接的 Web 视图(如 Instagram)内时,尝试执行 URL 方案链接。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<script>
window.onload = function () {
const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
if (isMobile) {
const isUserComingFromInstagramReferral = document.referrer.includes("instagram");
if (isUserComingFromInstagramReferral) {
const url = window.location.href.replace("https://your-domain", "your-app-scheme://")
window.location = url;
setTimeout(function () {
// wait a second and then to go App Store or your Website
// if the user hasn't installed yet.
window.location = "your-web-site-or-app-store-link";
}, 1000);
}
}
}
</script>
</head>
<body>
<p>Hello, World!</p>
<img src="./public/your-app-icon.png" alt="" width="300" height="300"/>
</body>
</html>