深层链接回退

问题描述 投票:13回答:2

我将发布指向Facebook和Twitter的链接,以获取指向我应用程序的深层链接。我已经开始使用Facebook进行测试,并且只要安装了Facebook应用程序,我的链接就可以正常工作。如果他们没有安装Facebook应用程序,则将它们直接带到我的网站。

如果用户未安装Facebook应用程序或更普遍地单击我的应用程序的链接并且我总是希望将它们发送到我的应用程序中,那么处理后备的最佳做法是什么?

android ios facebook twitter deep-linking
2个回答
11
投票

很好的问题。您不应共享直接引至您应用的深层链接,而应使用Java的后备代码在您的网站上托管一个页面。该页面可以直接打开应用程序,也可以退回到App Store(而不是您的网站)。

这里是您需要在服务器上托管并链接到Facebook的页面的具体示例。它也适用于电子邮件,社交媒体等。只需替换您的应用程序的URI您的应用程序的应用程序商店链接。请注意,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的开发人员,以上代码是我们解决此问题的一部分。


0
投票

您好Jeffrey NicholsonCarré在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"; 
 }
© www.soinside.com 2019 - 2024. All rights reserved.