解答:短信内短网址可以唤醒app吗?

 当我们给用户发送一条短信,里面有一条短链接,当用户点击短链接就能打开APP首页或指定页面。是不是很酷?那么这是如何实现的呢?用的第三方应用还是自己写的?小编今天就给大家揭秘。

  其实,实现的方法很简单。可以使用mrw短网址http://mrw.so或缩我短网址 http://suo.im来实现(当然,新浪的t.cn短网址也可以,但是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");

  }

  }