是否有URI方案将Mobile Safari打开到特定的URL?从WebView中的链接打开移动Safari
例如,
<a href="safari://open_url/?url=google.com">Open Google in Safari</a>
是否有URI方案将Mobile Safari打开到特定的URL?从WebView中的链接打开移动Safari
例如,
<a href="safari://open_url/?url=google.com">Open Google in Safari</a>
更新: 所以,作为的iOS 6.0.2的,还有不特定于MobileSafari(见下文)的URL方案。但是,Federico Viticci发布了一个interesting hack,可以让你从iOS版的Chrome浏览器调用Safari。它不如Chrome-to-Safari小书签功能强大,但它确实表明可以从Chrome for iOS启动MobileSafari。
原始回答: 事实证明,您不能使用URI方案在Safari中打开链接。其他应用程序中的超链接可以使用openURL
(请参阅其他答案)在safari中打开,但MobileSafari本身没有任何方案(如果您要在Safari中使用Chrome或Opera for iOS中的超链接打开链接,则需要使用此方案。
谷歌浏览器有以下两个URI方案:googlechrome://
和googlechromes://
(用于HTTPS),只是工作的任何其他应用程序特定的方式(如dayone://
,things://
,或sms://
)。
试试这个:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com/"]];
我需要链接在HTML中,而不是客户端应用程序代码。更新问题更清晰 - 抱歉西蒙! –
我认为Kirk正在寻找一个特定的URL方案(类似于在5.1之前用于打开偏好的URL方案:'[NSURL URLWithString:@“prefs:root = LOCATION_SERVICES”]];')。 –
@Kirk我刚刚编辑了我的答案,如果你用HTTP方案打开一个URL,它将使用移动Safari。 –
OK,我想我明白你问什么。
有一个类实现UIWebViewDelegate协议。实施方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
只要用户在您的web视图中点击链接,就会调用此方法。你可以得到用户点击的URL,检查request
参数。然后,您可以截取您想要在移动Safari中打开的任何链接,而不是在您的webView中打开,然后在共享应用程序上调用-openURL:
,就像我的其他答案一样。
[[UIApplication sharedApplication] openURL:URLFromRequest];
您也可以使用WebKit JavaScript的桥https://github.com/marcuswestin/WebViewJavascriptBridge
这可以让你从JavaScript将消息发送到Xcode中。 我用它来从HTML页面关闭网页视图:
self.bridge = [WebViewJavascriptBridge bridgeForWebView:self.webView handler:^(id data, WVJBResponseCallback responseCallback) {
NSLog(@"Received message from javascript: %@", data);
if ([data isEqual:@"closewin!"])
[self dismissModal];
}];
但你也可以使用此跳转到Safari或任何你想
你曾经能够找到一个方法来做到这一点? –
我也在寻找这个。 – CodeMilian
你是否找到解决办法? –