Apache Cordova permite-navegación anulada por permitir-intención
Queremos que todos los enlaces de la aplicación puedan abrirse en el navegador externo del sistema, con la excepción de una selección de nombres de host.
Intentamos poner <allow-navigation href="*.hostname.com/*"/>
, pero esto se anula cuando se usa <allow-intent href="http://*/*" /> and <allow-intent href="https://*/*"
como las etiquetas de intención para todos los demás enlaces de la aplicación.
- HTML5 SQLite vs Base de datos nativa en caso de PhoneGap
- ¿Cómo mostrar la misma parte del juego en cada relación de aspecto en dispositivos Android con Unity?
- Cómo cargar e importar un archivo CSS / JS desde el teléfono en el teléfono?
- Corona sdk tamaño de la aplicación es demasiado grande
- ¿Cómo puedo desactivar select2 jQuery plugin en tabletas?
El resultado esperado sería que nuestros nombres de host se abran dentro de la aplicación, pero se abren en el navegador externo en su lugar.
He intentado ver toda la documentación reciente y ayuda disponible en la red, pero no pude encontrar una respuesta a mi solución. Espero que ustedes lo sepan.
Editar: se olvidó de mencionar que ejecutar la última cordova CLI y el plugin más reciente lista blanca con el complemento inappbrowser.
Sinceramente,
Daniel
- Cordova tarea de programación
- Córdoba: ¿Cómo establecer diferentes nombres de paquetes por plataforma usando el cordova-cli?
- Detectar la máxima resolución de vídeo compatible con un dispositivo móvil en un sitio web que responda
- ¿Cuál es su flujo de trabajo para probar Cloud Code en Parse?
- Enlace a Apple Wallet o Android Pay desde una aplicación web MVC
- Limitaciones de Cordova PhoneGap
- Phonegap Conexión de red - No se puede leer la propiedad 'tipo' de undefined
- Preguntas de Xamarin
Prueba a cambiar las etiquetas <allow-*
> a esto:
<allow-intent href="*.hostname.com/*" <allow-navigation href="https://*/*" <allow-navigation href="http://*/*" <allow-access href="https://*/*" <allow-access href="http://*/*"
La etiqueta <allow-navigation>
es para controlar las URLs a las que se puede navegar la webview de Cordova.
Vea este artículo para una mejor comprensión de la lista blanca de Cordova.
Creo que necesitas hacerlo manualmente. Puede utilizar el complemento navegador de inApp para lograr esto.
- Compruebe el enlace es interno / externo (Al marcar el hipervínculo contiene su nombre de host contiene o no)
- Si es externa, llame al navegador del sistema y abra el enlace
cordova.InAppBrowser.open('http://external-domain.name', '_system', 'location=yes');
- Si es interno, abra el enlace dentro de InAppBrowser
cordova.InAppBrowser.open('http://yourdomain.name', '_blank', 'location=yes');
Puede ignorar el tercer paso si no lo necesita.
Código completo:
$(document).on("click","a",function(e){ var hrefs = $(this).attr("href"); if(hrefs.indexOf("yourdomain") > -1) { //Open link inside inAppBrowser cordova.InAppBrowser.open(hrefs, '_blank', 'location=yes'); e.preventDefault();//To prevent default click } else { //Open link inside system browser cordova.InAppBrowser.open(hrefs, '_system', 'location=yes'); e.preventDefault();//To prevent default click } })