如何定义以http开头的url方案ios7

问题描述:

我可以定义像myapp这样的自定义方案,以便第三方应用可以将链接重定向到我的应用(如果用户安装了它)。但如果用户尝试打开http://mysite/mypage.com等链接,我希望第三个应用程序打开我的应用程序。如何定义以http开头的url方案ios7

现在我们可以看到,野生动物园开放成为YourTube当我们键入比如链接:

http://www.youtube.com/watch?v=WZH30T99MaM

或地图应用程序会打开,如果我们键入比如链接:

http://maps.google.com/maps .....

那么如何定义第三个应用程序打开我的应用程序的自定义方案(如果用户输入的话):

http://a.myapp.com

简答:您不能没有服务器支持。 Apple提供的技巧不适用于第三方应用程序来重定向HTTP地址,如地图和YouTube。

你能做到这一点的唯一方法是建立在http://a.myapp.com是重定向到myapp://

可能的解决方法Web服务器,注册您的自定义URL方案,然后在你的HTML /起始页的JS代码您检查浏览器代理是否为Mobile Safari,并使用自定义方案将其转发到URL。

您还可以检查应用程序是否未安装并重定向到AppStore,只需通过打开带有超时的AppStore链接即可,因此如果重定向尝试自定义URL计划链接失败,则转到App Store。

<script type="text/javascript"> 
var app = { 
    isSafariMobile: function() { 
     return navigator.userAgent.match(/(iPod|iPhone|iPad)/) && navigator.userAgent.match(/AppleWebKit/) 
    }, 
    launchApp: function() { 
     window.location.replace("myapp://"); 
     this.timer = setTimeout(this.openAppStore, 1000); 
    }, 
    openAppStore: function() { 
     window.location.replace("https://itunes.apple.com/app/Myapp"); 
    } 
}; 

if (app.isSafariMobile()){ 
    app.launchApp(); 
} 

</script> 

UPDATE: Safari的检测方法可以稍微调整,IOS的铬应用也可以如Safari通过将该代码作为它的WebKit在iPhone上的其用户代理字符串检测。