tutorial pais descargar apellido cordova

cordova - pais - PhoneGap: abrir URL externas en Safari



cordova pais (12)

Acabo de actualizar a PhoneGap 1.6.1 y ya no puedo obtener URL externas para abrir en Safari.

Antes de esta versión, había parcheado AppDelegate.m de la siguiente manera:

- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = [request URL]; if ([[url scheme] isEqualToString:@"http"]) { [[UIApplication sharedApplication] openURL:url]; return NO; } else { return [self.viewController webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType]; } }

Noté que se me había preguntado antes una pregunta similar: ¿cómo puedo abrir un enlace externo en Safari, no UIWebView de la aplicación?

Pero me parece que esta respuesta ya no funciona en la versión 1.6.1.

También intenté configurar OpenAllWhitelistURLsInWebView en Cordova.plist, pero ninguna configuración me da Safari.

Gracias por adelantado.


Al tratar de simplificar la solución, esto es lo que terminé usando PhoneGap / Cordova 2.5.0 y jQuery 1.9.1

  • OpenAllWhitelistURLsInWebView no importa. Establecerlo en verdadero, falso u omitirlo no parece tener ninguna relación con el resultado.
  • La URL tiene un objetivo de _system, así: <a target="_system" href="http://rads..com/amzn/click/B009CZICQ8">
  • Entonces llamo:

    $("a[target=''_system'']").click(function(event) { event.preventDefault(); window.open($(this).attr("href"), "_system"); });


Creo que este método solía estar en /Classes/[tuAppName]AppDelegate.m y ahora está ubicado en /Classes/MainViewController.m. Simplemente lo moví allí para ver si funciona.


En la versión anterior de cordova, puedes cargar una url en el navegador agregando target = "_ blank" a tus enlaces. Pero ahora puedes usar la función del navegador de aplicaciones.

var ref = window.open(encodeURI(''your url''), ''_system'', ''location=no'');

Esto abre la url en el navegador. Probado en Android y iPhone con cordova2.7.0


Esta es la solución 100% garantizada si está usando Phonegap (probado en iOS 6).

Para abrir una URL externa en Safari, haga lo siguiente:

  1. Agregue su enlace en Host externo (lista blanca). Por ejemplo: http://google.com/
  2. En Cordova.plist o Phonegap.plist , cambie OpenAllWhitelistURLsInWebView de Yes a No
  3. En su aplicación, agregue target="_blank" a su enlace. Ejemplo:

    <a href="http://google.com" target="_blank">Google.com</a>

Gracias.


Hacer esto:

<a href="http://www.google.com/" onclick="window.open(this.href,''_system''); return false;">Google</a>


La mejor forma de abrir enlaces en una nueva URL es en realidad con window.open . Simplemente configure el destino como "_system":

window.open("http://.com", "_system");

Antes de encontrar esto en los documentos, escribí un complemento para hacer lo mismo. Voy a dejar esta respuesta aquí, porque esto te daría un control mucho más detallado sobre el manejo de enlaces.

Con PhoneGap 2.3+, no pude obtener direcciones URL para abrir en Mobile Safari de ninguna manera. El uso de _blank no funcionó, y probé window.open (url, ''_blank''), pero ahora se abre la URL con el complemento InAppBrowser (que apesta bastante). Pensé que era interesante que ese utilizara un plugin, así que decidí escribir un plugin para abrir URL usando el método estándar de abrir URLs en aplicaciones iOS. Puedes ver / tomar el código en esta esencia aquí: https://gist.github.com/typeoneerror/5097118 .

En mi ejemplo, conecté enlaces que tienen una clase llamada "_blank" con jQuery y abrí esas URL con la llamada al complemento:

// execute the plugin called OpenUrl, signature: // exec(successCallback, errorCallback, pluginName, pluginMethod, params) cordova.exec(success, error, "OpenUrl", "openUrl", [url]);


Lo he usado en MainViewController.m

- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = [request URL]; NSString *str = url.absoluteString; NSRange range = [str rangeOfString:@"http://"]; //HACK to make url open in safari if (range.location != NSNotFound) { [[UIApplication sharedApplication] openURL:url]; return NO; } else { return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ]; } }


Logré hacer que funcione con esta configuración:

1: Agregue la siguiente línea a config.xml - PhoneGap versión 3.1 y superior:

<gap:plugin name="org.apache.cordova.inappbrowser" />

2: luego puedes hacer esto:

<a onclick="window.open("http://www.yoururl.com/", "_system");">Link</a>


Resuelto hoy usando esta configuración:

  1. Android: 4.4
  2. iOS: 8.2
  3. CLI de Cordova: 5.1.1
  4. En el plugin App Browser : 1.2.2

Luego sigue estos pasos:

  1. Agregue el plugin In App Browser como se indica arriba
  2. en su archivo .html, personalice esta línea:

<a href=''http://www.arsdigitalia.it'' target=''_blank''>Go to my nice website</a>

  1. en su archivo .js use estas líneas:

document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { window.open = cordova.InAppBrowser.open; } window.addEventListener(''load'', function () { $(document).on(''click'', ''a[target="_system"],a[target="_blank"]'', function (e) { e.preventDefault(); var url = this.href; window.open(url,"_system"); }); } }, false);


Tuvo el mismo problema después de actualizar a Cordova 1.6.1.

Intente agregar target="_blank" a sus enlaces.

Eso hizo el truco para mí.


Uso de Phonegap / Cordova 1.7 He podido abrir URLs en el navegador externo en JavaScript con solo hacer esto:

window.location.href = "http://www.google.com";

También tengo OpenAllWhitelistURLsInWebView establecido en NO en Cordova.plist


para abrir una URL externa en Safari Haga los siguientes pasos.

1) .Agregue su enlace en el Host externo (lista blanca) .con la URL completa si desea google url y luego agregue
Por ejemplo: http://google.com/

2) .En Cordova.plist o Phonegap.plist, cambie

OpenAllWhitelistURLsInWebView de Sí a No

para Android De verdadero a falso.

3). escribe este código para abrir la URL

window.location.href = "http://www.google.com";