通用链接/深层链接在网络视图中打开

问题描述 投票:0回答:1

给您一些背景信息:目标是通过链接(深层链接)共享我们应用程序中的对象,但是,当在 Facebook/Messenger/Instagram 上发送链接并且当我们尝试打开它时,它不会打开应用程序,因为这些应用程序使用内部浏览器,该浏览器直接重定向到 Web 视图(而不是我们的应用程序),为了克服这个问题,我们希望在 Web 视图上放置一个允许打开应用程序的按钮。

在其他应用程序(例如“消息”或“便笺”)上共享链接时,通用链接可以正常工作

我们正在尝试从不属于我们的应用程序打开通用链接,而无需在Web视图中打开它,或者找到一种方法让Web视图通过JS按钮打开通用链接。无需通过 Firebase 动态链接,也无需通过自定义方案。

我们正在尝试在 iOS 上解决这个问题,我们的应用程序是用 Dart 和 Flutter 制作的,但我们遵循原生 iOS 的通用链接方式。 (在 XCode 中的关联域中注册域,将

.well-known/apple-app-site-association
文件添加到我们域根下的 HTTPS 安全网络空间中)

ios flutter deep-linking ios-universal-links
1个回答
0
投票

也卡在这个上了。到目前为止,我见过的唯一解决方案(尚未尝试过)是,当您检测到自己处于不可深层链接的 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>

来源:https://medium.com/@cemnisan/how-to-automatically-open-your-app-from-instagram-stories-using-universal-link-and-url-scheme-71650ee90a8b

© www.soinside.com 2019 - 2024. All rights reserved.