如果javascript中不存在本机应用程序,则执行代码

时间:2014-07-16 13:36:53

标签: javascript jquery ios

如果未安装instagram,我想显示一个弹出窗口。我现在有这个代码:

setTimeout(function () { 
            $.mobile.changePage( "dialog-instagram.html", { role: "dialog" });
}, 5);
window.location = "instagram://media?id=" + element.title;

如果在手机上安装了Instagram,则会启动该应用并显示我想要的照片。如果未安装,请启动dialog-instagram.html

谢谢。问题是始终启动dialog-instagram.html。如果应用程序未打开,我只是希望它启动。我理解为什么,代码启动延迟5秒。

能做到吗?我怎么知道window.location是否成功?

1 个答案:

答案 0 :(得分:0)

尝试增加延迟时间非常短,所以你可以尝试增加它(300ms是合理的)。如果这不起作用,请尝试使用此代码(基于this answer):

function startIThrown(){
  document.location = 'instagram://media?id=' + element.title;
  setTimeout(function(){
    if(confirm('You do not seem to have iThrown installed, do you want to go download it now?')){
      document.location = 'http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=293049283&mt=8&uo=6';
    }
  }, 300);
}

<a href="#" onclick="startIThrown()">Restart iThrown</a>