从Web应用程序启动本机应用程序时出错 - iOS - 无法显示URL

时间:2012-01-16 22:18:51

标签: iphone ios url-scheme

我在尝试从我的网络应用程序(支持apple-mobile-web-app)调用我的原生iOS应用程序时遇到了一些麻烦。每当我在Safari中按下按钮以使用自定义网址方案打开我的应用程序时,该工作正常。

然而,当我将它添加到主屏幕时,我遇到了错误:无法显示URL。重定向到http或https工作正常,但如果我调用mysupercustomurlscheme://我收到上面的错误消息。

我试过通过document.location.href,window.location等打开它,但似乎没有什么可以解决问题而且我的想法已经用完了。

如果有人有任何想法,我会非常感激听到他们。

提前致谢!

2 个答案:

答案 0 :(得分:1)

好吧,这是一种有点笨拙的方法,但它有效,可能会帮助一些可怜的灵魂试图达到同样的目的。

首先,创建一个简单的HTML链接,显然,常规HTML链接在Mobile Safari中打开,而不是在Web应用程序的全屏视图中打开。     链路

在redirect.html中,您只需使用一些简单的javascript重定向用户即可。     window.location =“mysupercustomurlscheme://”

就是这样!它当然不是最好的方法,但它“相当”无缝。这就是我至少想出来的,如果你有任何其他建议,请告诉我。

希望这有助于某人!

答案 1 :(得分:0)

只是想发布一个Tobias引用的例子。您需要在服务器上托管并链接到电子邮件,社交媒体等。只需在您的应用的URI 您的App Store链接中替换即可。请注意,iframe适用于更多浏览器。

<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript">
            window.onload = function() {
                // Deep link to your app goes here
                document.getElementById("l").src = "my_app://";

                setTimeout(function() {
                    // Link to the App Store should go here -- only fires if deep link fails                
                    window.location = "https://itunes.apple.com/us/app/my.app/id123456789?ls=1&mt=8";
                }, 500);
            };
        </script>
        <iframe id="l" width="1" height="1" style="visibility:hidden"></iframe>
    </body>
</html>

因此,如果用户安装了您的应用程序,则带有URI的链接将成功,您将在浏览器存在之前触发重定向到App Store的脚本。如果用户没有您的应用程序,则重定向成功(在简短的丑陋错误消息之后)。我是Branch的开发人员,我们使用此功能,因此请随时与实施中的问题联系。