如果's,如果未安装,则返回到其他URL

Can I make a link that will open in my app if it's installed, and fall back to a different URL if not?

本文关键字:如果 返回 URL 其他 安装      更新时间:2024-05-04

用户可以通过twitter共享我们应用程序中的文件。推文包括一个指向我们服务器的URL,该URL检测用户是否在移动设备上,并使用我们应用程序的自定义方案重定向到URL,以便在我们的应用程序中打开链接。

这对桌面用户和安装了我们应用程序的移动用户来说都很好;但它不适用于那些不这样做的移动用户。因此,我们想做的是向所有用户显示一个页面,该页面包含一个链接,当按下该链接时,如果支持,将使用自定义URL方案打开应用程序,如果不支持,则打开一个不同的URL,用户可以在其中下载我们的应用程序。

所以我要找的是HTML或JS中的答案,它看起来有点像:

<a href="ourapp://www.ourdomain.com/files/12345"
   fallbackhref="http://www.ourdomain.com/buyourapp">Click to download</a>

这可能吗?如果是,我们该怎么做?

您可以使用以下代码在Android中实现这一点:

function openLink () {
    var appWindow = window.open("ourapp://www.ourdomain.com/files/12345","_blank");
    setTimeout( function () {if (appWindow) {
        appWindow.location ="http://www.ourdomain.com/buyourapp";
            }
            },1000);
}

点击链接时调用openLink()功能(否则浏览器将阻止新窗口弹出)。

iOS的不同之处在于它处理自定义方案的方式。

对于iOS,您需要执行以下操作:使用以下代码片段创建2个HTML文件

文件#1:这是你打开应用程序/回退到网站的链接

<script type="text/javascript">
function openLink (url,customURI) {
    window.open("file2.html?lp="+url+"&customURI="+customURI,"_blank");
}
</script>
<img src="IMAGE SOURCE" onclick="openLink('LANDING PAGE','CUSTOM URI')">

文件#2:

<html>
<script>
function openApp () {
    var start, end, elapsed;
    var params =   window.location.href.split("lp=")[1];
    var url     =   params.split("&customURI=")[0];
    var customURI     =   params.split("&customURI=")[1];
    var time = (new Date()).getTime();
    document.location       =       customURI+url;        
    setTimeout(function(){
            var now = (new Date()).getTime();
            if((now - time)<2550) {
            javascript: console.log(new Date().getTime());
                            document.location = url;
            }
            else{
            window.open('', '_self', '');
                    window.close();
        }
    }, 2000);
}
</script>
<body onload="openApp()">
    <a onclick="openApp()" id="newButton">Click Here to open the App</a>
</body>

希望这有帮助:)