黑科技分享:打开短信里的短网址实现调起app应用
当我们给用户发送一条短信,里面有一条短链接,当用户点击短链接就能打开APP首页或指定页面。是不是很酷?那么这是如何实现的呢?用的第三方应用还是自己写的?小编今天就给大家揭秘。
其实,实现的方法很简单。可以使用FT12短网址http://www.ft12.com 或U6短网址 http://u6.gg来实现(当然,新浪的t.cn短网址也可以)用户点击短链接发起请求,短链接跳转到真实的链接,然后系统识别到了真实链接里面的schema,如果有安装该schema对应的app就会唤起打开,如果没有则可能没有响应或者打开浏览器。具体代码如下:
function AppOpen(schema) { var ua = navigator.userAgent.toLowerCase(); //由于ios8以上系统很有可能不能直接iframe方式唤起app,需要通过创建a链接才能唤起 if ((ua.indexOf('safari') > -1 && (ua.indexOf('os 5') == -1|| ua.indexOf('os 6') == -1|| ua.indexOf('os 7') == -1|| ua.indexOf('os 8') == -1)) { var schemaLinkOpen = document.getElementById('schemaLinkOpen'); if (!schemaLinkOpen) { schemaLinkOpen = document.createElement('a'); schemaLinkOpen.id = 'schemaLinkOpen'; schemaLinkOpen.style.display = 'none'; document.body.appendChild(schemaLinkOpen); } schemaLinkOpen.href =schema; // 执行click schemaLinkOpen.dispatchEvent(CustomClickEvent()); } var iframeObj = document.createElement("iframe"); var startTime = (new Date()).getTime(); if (iframeObj != null) { iframeObj.setAttribute("style", "height:0px;width:0px;display:none;"); iframeObj.setAttribute("src", scheme); document.body.appendChild(iframeObj); document.body.removeChild(iframeObj); } setTimeout(function () { var endTime = (new Date()).getTime(); if (isiPhone) { if (endTime - startTime < 700) { window.open(sHrefUrl, "_parent"); } }