example app ios webview

ios - app - Abra Mobile Safari desde un enlace en una vista web



wkwebview ios (5)

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

p.ej,

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


OK, 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

Este método se llama cada vez que el usuario hace clic en un enlace en su vista web. Puede obtener la URL en la que hizo clic el usuario para inspeccionar el parámetro de request . Luego puede interceptar cualquier enlace que desee abrir en Mobile Safari en lugar de hacerlo dentro de su webView y luego llamar a -openURL: en la aplicación compartida como en mi otra respuesta.

[[UIApplication sharedApplication] openURL:URLFromRequest];


Prueba esto:

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


También puede utilizar 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 de 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.


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

Respuesta original : Resulta que no 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 (que necesitaría si abriera 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:// ).


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

Esquema URI para safari es- x-web-search: //

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