如何定义以http开头的url方案ios7
问题描述:
我可以定义像myapp
这样的自定义方案,以便第三方应用可以将链接重定向到我的应用(如果用户安装了它)。但如果用户尝试打开http://mysite/mypage.com
等链接,我希望第三个应用程序打开我的应用程序。如何定义以http开头的url方案ios7
现在我们可以看到,野生动物园开放成为YourTube当我们键入比如链接:
http://www.youtube.com/watch?v=WZH30T99MaM
或地图应用程序会打开,如果我们键入比如链接:
http://maps.google.com/maps .....
那么如何定义第三个应用程序打开我的应用程序的自定义方案(如果用户输入的话):
答
简答:您不能没有服务器支持。 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上的其用户代理字符串检测。