Abra Mobile Safari desde un enlace en una WebView

¿Existe un esquema de URI para abrir Mobile Safari en una URL específica?

p.ej,

Open Google in Safari 

Actualización : Entonces, a partir de iOS 6.0.2, todavía no hay un esquema de URL específico para MobileSafari (ver a continuación). Sin embargo, Federico Viticci ha publicado un truco interesante que te permitirá llamar a Safari desde Chrome para iOS. No es tan funcional como un bookmarklet de Chrome a Safari, pero sí muestra que es posible lanzar MobileSafari desde Chrome para iOS.

Respuesta original : resulta que no se puede abrir un enlace en Safari usando solo un esquema de URI. Los hipervínculos en otras aplicaciones se pueden abrir en Safari usando openURL (ver otras respuestas), pero no hay ningún esquema para MobileSafari en sí mismo (que necesitaría si tuviera que abrir un enlace en Safari usando un hipervínculo en Chrome u Opera para iOS).

Google Chrome tiene los siguientes dos esquemas de URI: googlechrome:// y googlechromes:// (para HTTPS) que funcionan igual que cualquier otro esquema específico de la aplicación (como dayone:// , things:// o sms:// )

Prueba esto:

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

De acuerdo, creo que entiendo lo que estás pidiendo.

Haga que una clase implemente el protocolo UIWebViewDelegate . Implementar el método

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

Se llama a este método cada vez que el usuario hace clic en un enlace en su vista web. Puede obtener la URL en la que el usuario hizo clic para inspeccionar el parámetro de request . A continuación, puede interceptar los enlaces que desee abrir en Safari móvil en lugar de dentro de su webView y luego llamar a -openURL: en la aplicación compartida como en mi otra respuesta.

 [[UIApplication sharedApplication] openURL:URLFromRequest]; 

También puede usar el puente javascript de webkit https://github.com/marcuswestin/WebViewJavascriptBridge

Esto le permite enviar mensajes de javascript a xcode. Lo uso para cerrar la vista web desde la página html:

 self.bridge = [WebViewJavascriptBridge bridgeForWebView:self.webView handler:^(id data, WVJBResponseCallback responseCallback) { NSLog(@"Received message from javascript: %@", data); if ([data isEqual:@"closewin!"]) [self dismissModal]; }]; 

pero también puedes usar esto para saltar al safari o cualquier cosa que quieras

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

Esquema de URI para safari is- x-web-search: //

Esto abrirá su búsqueda en el navegador safari.