【问题标题】:How to define url schemes starting with http ios7如何定义以http ios7开头的url方案
【发布时间】:2015-11-09 06:44:15
【问题描述】:

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

现在我们可以看到,当我们键入以下链接时,Safari 会打开 yourtube:

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

如果我们键入以下链接,则地图应用程序会打开:

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

那么,如果用户键入以下内容,我如何定义第三个应用程序打开我的应用程序的自定义方案:

http://a.myapp.com

【问题讨论】:

    标签: ios uri url-scheme


    【解决方案1】:

    可能的解决方法是,注册自定义 URL 方案,然后在站点起始页的 HTML/JS 代码中检查浏览器代理是否为 Mobile Safari,并将其转发到具有自定义方案的 URL。

    您还可以检查应用程序是否未安装并重定向到 AppStore,只需打开带有超时的 AppStore 链接,因此如果重定向到自定义 URL Scheme 链接的尝试失败,您可以转到 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。

    【讨论】:

      【解决方案2】:

      简短回答:您不能没有服务器支持。 Apple 采用了第三方应用程序无法使用的技巧来重定向地图和 Youtube 等 HTTP URL。

      您可以做到这一点的唯一方法是在http://a.myapp.com 设置一个重定向到myapp:// 的Web 服务器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-13
        • 2017-11-19
        • 2014-05-02
        • 1970-01-01
        • 1970-01-01
        • 2011-07-24
        • 2021-01-29
        • 1970-01-01
        相关资源
        最近更新 更多