visual studio microsoft espaƱol descargar community jquery ios cordova jquery-mobile

jquery - microsoft - visual studio installer



Los enlaces no se abren en un navegador externo en JQuery Mobile con PhoneGap (4)

La misma solución que @KyleSimmons, pero solo en línea y más corta. pero una solución simple. Y funciona muy bien para mi

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

Tengo un problema en PhoneGap 2.3.0 con JQuery Mobile 1.2.0.

Cualquier iniOS de enlace externo se abre dentro de la aplicación en lugar de abrir Safari que se abren dentro de la aplicación, lo que hace imposible que el usuario regrese a la aplicación sin reiniciarla.

He intentado tanto rel = "external" como target = "_ blank" para indicar que es un enlace externo, pero ninguno con éxito.

He visto que la forma predeterminada en que PhoneGap con JQMobile debería actuar es la que yo quiero. He encontrado muchas solicitudes para este tipo de comportamiento, pero no el camino correcto.


Para abrir un enlace externo en jQuery Mobile:

<a href="http://moorberry.net" data-rel="external">Like this</a>


Si no desea anular las clases o profundizar en el código como se sugiere, intente esto. Funcionó como un encanto para mí. Estoy usando Phonegap Build y jQuery Mobile.

* Nota: He intentado varias otras formas de agregar atributos directamente a las etiquetas de anclaje, por ejemplo, <a href="http://externalsite.com target="_blank" data-rel="external" data-ajax="false"> también intenté target="_system - pero ninguno funcionó, así que tuve que usar javascript (solo 5 líneas).

No es muy complicado, pero te guiaré a través de él ...

  1. Debe evitar el comportamiento predeterminado de la etiqueta de anclaje. Así que de alguna manera agarra las etiquetas a que te importan. Agregué una clase llamada "externa" a todas las etiquetas de anclaje que quería abrir externamente. Bastante estándar:

    $(document).on(''click'', ".external", function (e) { e.preventDefault(); };

  2. A continuación, toma el valor href del anclaje que intentas cargar en safari. Nuevamente, nada demasiado elegante agregado aquí:

    $(document).on(''click'', ".external", function (e) { e.preventDefault(); var targetURL = $(this).attr("href"); };

  3. Esta fue la parte que tomó algo de excavación. Supongo que Phonegap cambió su método con 2.3? De todos modos, abra el href capturado en una nueva ventana (aquí es donde "_system" ):

    $(document).on(''click'', ".external", function (e) { e.preventDefault(); var targetURL = $(this).attr("href"); window.open(targetURL, "_system"); });

Eso es. Ese último bit de código es todo. Al menos eso es lo que funcionó para mí.

¡Buena suerte!

(Para dar crédito donde se debe crédito, esto es lo que más me ayudó: http://www.midnightryder.com/launching-external-urls-in-phonegap-again-phonegap-2-4-x/ )


rel="external" a mis enlaces de anclaje.

Y luego agregó / reemplazó el método shouldStartLoadWithRequest en la clase MainViewController :

- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = [request URL]; // Intercept the external http requests and forward to Safari.app // Otherwise forward to the PhoneGap WebView if ([[url scheme] isEqualToString:@"http"] || [[url scheme] isEqualToString:@"https"]){ [[UIApplication sharedApplication] openURL:url]; return NO; } else { return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType]; } }

Eso funciona para mí en jQuery Mobile 1.2 y Phonegap 2.2.0. Debería funcionar igual en Phonegap 2.3.0, pero no lo he probado.

=============================================== =============================

ACTUALIZAR :

Es posible que no haya ninguna necesidad de hacer esto en Phonegap 2.7.0 o superior. Phonegap ahora puede abrir enlaces en cualquiera de los componentes UIWebView, Safari o InAppBrowser. Personalmente, me gusta el componente InAppBrowser, ya que parece ser una mejor experiencia de usuario para muchos casos de uso. Si quiere abrir enlaces en Safari ahora puede hacerlo ahora usando Javascript:

window.open(''http://whitelisted-url.com'', ''_system'');

o esto para el InAppBrowser:

window.open(''http://whitelisted-url.com'', ''_blank'');

Mire aquí para más información:

http://wiki.apache.org/cordova/InAppBrowser http://docs.phonegap.com/en/2.7.0/cordova_inappbrowser_inappbrowser.md.html#InAppBrowser