如何定义以 http ios7 开头的 url 方案
How to define url schemes starting with http ios7
我可以定义像 myapp
这样的自定义方案,这样第三个应用程序就可以将像 myapp://mypage.com
这样的链接重定向到我的应用程序(如果用户安装了它)。但如果用户也尝试打开 http://mysite/mypage.com
之类的链接,我希望第三个应用程序打开我的应用程序。
现在我们可以看到当我们输入如下链接时,safari 会打开 yourtube:
http://www.youtube.com/watch?v=WZH30T99MaM
或者如果我们输入如下链接,地图应用程序将打开:
http://maps.google.com/maps.......
那么,如果用户输入以下内容,我该如何定义第三方应用程序打开我的应用程序的自定义方案:
简答:没有服务器支持就不行。 Apple 使用第三方应用程序无法使用的技巧来重定向地图和 Youtube 等 HTTP URL。
唯一可以做到这一点的方法是在 http://a.myapp.com
设置一个重定向到 myapp://
的网络服务器
可能的解决方法是,注册自定义 URL 方案,然后在站点起始页的 HTML/JS 代码中检查浏览器代理是否为 Mobile Safari 并将其转发到URL 使用自定义方案。
您还可以检查应用程序是否未安装并重定向到 AppStore,只需在超时后打开 AppStore link,因此如果重定向尝试自定义 URL 方案 link去 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>
更新: Safari 检测方法可能会略有调整,ios chrome 应用程序也可以通过此代码检测为 Safari,因为它有iPhone.
上其 UserAgent 字符串中的 WebKit
我可以定义像 myapp
这样的自定义方案,这样第三个应用程序就可以将像 myapp://mypage.com
这样的链接重定向到我的应用程序(如果用户安装了它)。但如果用户也尝试打开 http://mysite/mypage.com
之类的链接,我希望第三个应用程序打开我的应用程序。
现在我们可以看到当我们输入如下链接时,safari 会打开 yourtube:
http://www.youtube.com/watch?v=WZH30T99MaM
或者如果我们输入如下链接,地图应用程序将打开:
http://maps.google.com/maps.......
那么,如果用户输入以下内容,我该如何定义第三方应用程序打开我的应用程序的自定义方案:
简答:没有服务器支持就不行。 Apple 使用第三方应用程序无法使用的技巧来重定向地图和 Youtube 等 HTTP URL。
唯一可以做到这一点的方法是在 http://a.myapp.com
设置一个重定向到 myapp://
可能的解决方法是,注册自定义 URL 方案,然后在站点起始页的 HTML/JS 代码中检查浏览器代理是否为 Mobile Safari 并将其转发到URL 使用自定义方案。
您还可以检查应用程序是否未安装并重定向到 AppStore,只需在超时后打开 AppStore link,因此如果重定向尝试自定义 URL 方案 link去 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>
更新: Safari 检测方法可能会略有调整,ios chrome 应用程序也可以通过此代码检测为 Safari,因为它有iPhone.
上其 UserAgent 字符串中的 WebKit