ios mobile-safari url-scheme

ios - ¿Cuál es el esquema de URL personalizado de Mobile Safari?



mobile-safari url-scheme (2)

Esta pregunta ya tiene una respuesta aquí:

Los esquemas URL de iOS permiten a los sitios web lanzar aplicaciones como las siguientes:

  • twitter://timeline lanza Twitter
  • googlechrome://google.com lanza Chrome
  • fb://root lanza Facebook
  • ______________ lanza Safari? (no http:// , ya que Safari no se iniciará desde UIWebView )

¿Qué esquema de url personalizado activa el lanzamiento de Safari (incluso desde dentro de UIWebView otra aplicación)?

Para aclarar, no estoy buscando [[UIApplication sharedApplication] openURL: request.URL];

En cambio, estoy buscando cómo un sitio web puede permitir que un usuario inicie Mobile Safari desde el UIWebView de otra aplicación (Google Chrome, Twitter, etc.).

Ejemplo de enlaces HTML que abren otras aplicaciones:

<a href="twitter://timeline">Open Twitter</a> <a href="googlechrome://google.com">Open site in Chrome</a> <a href="fb://root">Open Facebook</a>

Estoy buscando algo similar a estos ejemplos que no funcionan:

<a href="safari://google.com">Open Safari [Doesn''t work]</a> <a href="webkit://google.com">Open Webkit [Doesn''t work]</a>

Aquí hay un jsFiddle de lo mismo: http://jsfiddle.net/gXLjF/9/embedded/result/

Intenta abrir http://jsfiddle.net/gXLjF/9/embedded/result/ en iOS Google Chrome y abrir Safari con los enlaces.


En cuanto a cualquier navegador web, http://someurl.com y https://someurl.com .


No hay esquema de URL de Safari. Sin embargo, si crea uno y lo utiliza en su html, puede verificarlo.

Implementar el método webView:shouldStartLoadWithRequest:navigationType: Devuelva "NO" a las solicitudes que desee desviar al safari móvil. Llame a UIApplication openURL con la URL de la solicitud.

Algo como esto:

- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { // all clicked links! if ( navigationType == UIWebViewNavigationTypeLinkClicked ) { [[UIApplication sharedApplication] openURL: request.URL]; return NO; } // or, custom URL scheme! if ( [request.URL.scheme isEqualToString: @"my-open-in-safari"] ) { // remap back to http. untested! NSURL* url = [NSURL URLWithString: [request.URL.absoluteString stringByReplacingOccurrencesOfString: @"my-open-in-safari" withString: @"http" ]]; [[UIApplication sharedApplication] openURL: url]; return NO; } return YES; }