深度链接回退

22

我将在Facebook和Twitter上发布深度链接以让用户进入我的应用程序。我已经开始测试Facebook的链接,只要安装了Facebook应用程序,链接就有效。如果他们没有安装Facebook应用程序,则会跳转到我的网站。

如果用户没有安装Facebook应用程序或更一般地说,点击我的应用程序链接时,最佳实践是如何处理后备方案以确保他们始终被发送到我的应用程序中?

2个回答

21

很好的问题。与其分享直接指向您的应用程序的深链接,您应该在您的网站上托管一个带有JavaScript回退代码的页面。该页面可以直接打开应用程序,或者回退到应用商店(而不是您的网站)。

这是一个具体的示例页面,您需要在服务器上托管并在Facebook上链接。它也适用于电子邮件、社交媒体等。只需替换您的应用程序URI您的应用程序App Store链接。请注意,iframe 可以在更多浏览器上使用。

<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript">
            window.onload = function() {
                // Deep link to your app goes here
                document.getElementById("l").src = "my_app://";

                setTimeout(function() {
                    // Link to the App Store should go here -- only fires if deep link fails                
                    window.location = "https://itunes.apple.com/us/app/my.app/id123456789?ls=1&mt=8";
                }, 500);
            };
        </script>
        <iframe id="l" width="1" height="1" style="visibility:hidden"></iframe>
    </body>
</html>

如果用户已安装您的应用程序,则具有URI的链接将成功,并且在可以触发重定向到App Store的脚本之前,用户将离开浏览器。 如果用户没有安装您的应用程序,则重定向将成功(在短暂的错误消息后)。

披露:我是Branch Metrics的一名开发人员,上述代码是我们解决此问题的一部分。


正好是我需要的,你有 Android 和 IOS 的示例吗? - Jeffrey Nicholson Carré
我尝试根据您的回答和这个文档在Android上实现它,但无法使其工作。似乎Android使用略有不同的URI。您能否提供一个Android示例 - 如果已安装则打开应用程序,否则将您带到应用商店? 我尝试使用<a href...>标签而不是iframe,并在单击链接之前,我正确地导航到了应用程序,但我不希望用户必须单击该链接。 - sushrut619
1
Chrome会显示弹出窗口,但不会停止代码执行。你找到解决这个问题的方法了吗? - Lukas Naruševičius
1
该方法在iOS上不再起作用,“Safari无法打开页面,因为地址无效”。 - Michael

1

你好,Jeffrey Nicholson Carré。以下是使用JavaScript编写的Android意图代码:


if(userAgentString.indexOf('Android')>0){
 window.location="intent://DataSchemeDataHostname/UV="+UVvalue+"&forgetuserId="+userID+"#Intent;scheme=https;package=com.sisystems.Sisystems;S.browser_fallback_url=https://example.com/index.html?UV="+UVvalue+";end"; 
 }

我会尽快更新。 - SheikMydeenMuthu
请参考以下网址了解React Native中的深度链接:https://tudip.com/blog-post/deep-linking-in-react-native/如果您需要任何示例项目,请参考我的Xamarin示例项目,其中包含Android和iOS的深度链接:https://github.com/SheikMydeenMuthu/DeeplinkingSample - SheikMydeenMuthu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接