如何定义从http ios7开始的url方案
我可以定义自定义方案,如如何定义从http ios7开始的url方案,ios,uri,url-scheme,Ios,Uri,Url Scheme,我可以定义自定义方案,如myapp,这样第三个应用程序可以重定向链接,如:myapp://mypage.com到我的应用程序(如果用户安装了它)。但如果用户试图打开http://mysite/mypage.com也是 现在,我们可以看到safari在键入以下链接时打开了yourtube: 或者,如果我们键入以下链接,则会打开地图应用程序: 那么,如果用户类型为: 简短回答:没有服务器支持,您就不能。苹果使用了一些第三方应用程序无法使用的技巧来重定向地图和Youtube等HTTP URL 唯一
myapp
,这样第三个应用程序可以重定向链接,如:myapp://mypage.com
到我的应用程序(如果用户安装了它)。但如果用户试图打开http://mysite/mypage.com
也是
现在,我们可以看到safari在键入以下链接时打开了yourtube:
或者,如果我们键入以下链接,则会打开地图应用程序:
那么,如果用户类型为:
简短回答:没有服务器支持,您就不能。苹果使用了一些第三方应用程序无法使用的技巧来重定向地图和Youtube等HTTP URL
唯一可以做到这一点的方法是在
http://a.myapp.com
重定向到myapp://可能的解决方法,注册自定义URL方案,然后在站点起始页的HTML/JS代码中检查浏览器代理是否为Mobile Safari,并将其转发到带有自定义方案的URL
您还可以检查应用程序是否未安装并重定向到AppStore,只需打开带超时的AppStore链接,因此,如果重定向到自定义URL方案链接的尝试失败,您可以转到AppStore
<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>
变量应用={
isSafariMobile:函数(){
返回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();
}
更新:Safari检测方法可能会稍微调整,ios chrome应用程序也可能被此代码检测为Safari,因为它在iPhone上的UserAgent字符串中包含WebKit