我已在Xcode中为我的应用程序设置了URL类型。出于问题的目的,我删除了实际的包标识符。
我的项目Bundle标识符是 com.domain.foo 。
我有一个简单的网页,只是通过三种不同的方式重定向:
window.onload = function() {
window.location.href="myschemereceiver://foo=bar";
window.location="myschemereceiver://foo=bar";
window.open("myschemereceiver", "_self");
}
但是,当我使用this包在嵌入式Safari视图中加载网址时,它不会重定向到我的应用。
当我在Safari中加载页面时,它会重定向到我的应用程序。
修改:
每当我尝试重定向到不存在的URL类型时,Safari就会抛出错误(这是预期的)。将其更改为有效类型时,Safari无法执行任何操作,只需呈现白屏。
答案 0 :(得分:2)
Safari View Controller不允许通过单击其中的URL来打开应用。若要解决此问题,您需要使用WebView。
但是,如果使用myschemereceiver://foo=bar
直接调用WebView,您的应用将无法启动(因为直接在safari地址栏中输入URL将无法启动应用)。当用户在Safari View Controller中单击时,您需要启动带有网站的WebView,用户应该单击另一个链接,或者您需要使用该网站内的javascript从那里打开您的应用程序。
有关通用链接的应用和浏览器支持的更多信息可以找到here。