从WebView中的链接打开Mobile Safari

时间:2012-04-30 20:56:41

标签: ios webview

是否有一个URI方案可以将Mobile Safari打开到特定的URL?

如,

<a href="safari://open_url/?url=google.com">Open Google in Safari</a>

4 个答案:

答案 0 :(得分:5)

<强>更新: 因此,从iOS 6.0.2开始,仍然没有特定于MobileSafari的URL方案(见下文)。但是,Federico Viticci发布了一个interesting hack,允许您从Chrome for iOS调用Safari。它不像Chrome-to-Safari书签那样实用,但它确实表明可以从Chrome for iOS推出MobileSafari。

原始答案: 事实证明,您无法仅使用URI方案在Safari中打开链接。其他应用程序中的超链接可以使用openURL在Safari中打开(请参阅其他答案),但是没有针对MobileSafari本身的方案(如果您使用Chrome或Opera中的超链接在Safari中打开链接,则需要此方案对于iOS)。

Google Chrome有以下两种URI方案:googlechrome://googlechromes://(适用于HTTPS),其工作方式与任何其他特定于应用的方案一样(例如dayone://,{{1} },或things://)。

答案 1 :(得分:3)

好的,我想我明白你的要求。

让一个类实现UIWebViewDelegate协议。实施方法

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

只要用户单击webview中的链接,就会调用此方法。您可以获取用户点击的URL来检查request参数。然后,您可以拦截要在移动Safari中打开的任何链接,而不是在webView中,然后在共享应用程序中调用-openURL:,就像在我的其他答案中一样。

[[UIApplication sharedApplication] openURL:URLFromRequest];

答案 2 :(得分:2)

试试这个:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com/"]];

答案 3 :(得分:-1)

window.location.replace("x-web-search://?your search here");

safari的URI方案是 - x-web-search://

这将在safari浏览器中打开您的搜索。