Ios 从WebView中的链接打开Mobile Safari

Ios 从WebView中的链接打开Mobile Safari,ios,webview,Ios,Webview,是否有URI方案可将Mobile Safari打开到特定URL e、 g 试试这个: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com/"]]; 好的,我想我理解你的要求 让一个类实现协议。实施该方法 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)requ

是否有URI方案可将Mobile Safari打开到特定URL

e、 g


试试这个:

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

好的,我想我理解你的要求

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

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
每当用户单击webview中的链接时,就会调用此方法。您可以获取用户在检查
请求
参数时单击的URL。然后,您可以截取您想在mobile Safari中而不是在webView中打开的任何链接,然后在共享应用程序上调用
-openURL:
,如我的另一个回答所示

[[UIApplication sharedApplication] openURL:URLFromRequest];
更新: 因此,截至iOS 6.0.2,仍然没有特定于MobileSafari的URL方案(见下文)。然而,费德里科·维蒂奇(Federico Vitici)已经发布了一个允许您在Chrome for iOS上调用Safari的网站。它的功能不如Chrome-to-Safari书签,但它确实显示了从Chrome-to-Safari-bookmarklet为iOS推出MobileSafari是可能的

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


Google Chrome有以下两个URI方案:
googlechrome://
googlechromes://
(用于HTTPS),它们与任何其他特定于应用程序的方案(如
dayone://
things://
,或
sms://
)一样工作。

您也可以使用webkit javascript桥

这允许您将消息从javascript发送到xcode。 我使用此选项从html页面关闭webview:

self.bridge = [WebViewJavascriptBridge bridgeForWebView:self.webView handler:^(id data, WVJBResponseCallback responseCallback) {
            NSLog(@"Received message from javascript: %@", data);
            if ([data isEqual:@"closewin!"])
                [self dismissModal];
        }];
但你也可以用它跳到safari或任何你想要的地方

window.location.replace("x-web-search://?your search here");
safari的URI方案是-x-web-search://


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

我需要HTML格式的链接,而不是客户端应用程序代码。更新问题使其更加清晰-抱歉,西蒙!我认为Kirk正在寻找一个特定的URL方案(类似于5.1之前用于打开首选项的URL方案:
[NSURL URLWithString:@“prefs:root=LOCATION\u SERVICES”]];
)。@Kirk我刚刚编辑了我的答案,如果您使用HTTP方案打开URL,它将使用移动safari。你曾经找到过这样做的方法吗?我也在寻找。你找到了解决这个问题的方法吗?你知道这是否适用于当前版本的iOS(例如,12.4?)吗?我看到了
x-web-search
在网络上的建议,但我怀疑这个方案可能会被弃用。
window.location.replace("x-web-search://?your search here");