Apache Cordova permitir-navigation anulada por permitir-bash

Queremos que todos los enlaces de la aplicación se puedan abrir en el browser externo del sistema, con la exception de una selección de nombres de host.

Intentamos poner <allow-navigation href="*.hostname.com/*"/> , pero esto se anula cuando usamos <allow-intent href="http://*/*" /> and <allow-intent href="https://*/*" como las tags de intención para todos los otros enlaces en la aplicación.

El resultado esperado sería que se abrieran nuestros nombres de host dentro de la aplicación, pero se abrirán en el browser externo.

He intentado ver toda la documentation reciente y la ayuda disponible en la networking, pero no pude encontrar una respuesta a mi solución. Espero que lo sepan.

Edición: olvidó mencionar que ejecutamos la última CLI cordova y el último complemento de list blanca con el complemento inappbrowser.

Sinceramente,

Daniel

    Intente cambiar sus tags <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 label <allow-navigation> es para controlar las direcciones URL a las que se puede navegar la vista web de Cordova.

    Mira este artículo para una mejor comprensión de la list blanca de cordova.

    Creo que necesitas hacerlo manualmente. Puede usar el complemento del browser en la aplicación para lograr esto.

    1. Compruebe que el enlace sea interno / externo (Al comprobar que el hyperlink contiene su nombre de host contiene o no)
    2. Si es externo, llame al browser del sistema y abra el enlace cordova.InAppBrowser.open('http://external-domain.name', '_system', 'location=yes');
    3. 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 } })