Как заставить phonegap window.location.href не запускать Chrome на Android

У меня есть приложение для телефонной связи. В deviceReady я установил window.location.href на какой-то другой URL. Это прекрасно работает на iOS 8.3, но на Android 5.0.1 меня спрашивают, хочу ли я открыть его в Chrome, а затем он открывается в Chrome, а не в моем приложении.

Есть ли способ открыть URL-адрес в приложении (например, заменить текущую страницу). Да, я знаю, что это не лучшая практика, одностраничное приложение лучше, бла-бла-бла, но в данный момент это не подходит для моего варианта использования.


person gman    schedule 10.05.2015    source источник


Ответы (2)


Если вы используете Cordova 5 (или выше) с платформой Android 4.0.0 (или выше), посмотрите: https://github.com/apache/cordova-plugin-whitelist

установить плагин через:

cordova plugin add https://github.com/apache/cordova-plugin-whitelist.git --save

в ваш config.xml вам нужно добавить:

<allow-navigation href="https://example.com/*" />

благодаря этому вы позволите веб-просмотру загрузить вашу страницу.

person dbaq    schedule 12.05.2015
comment
Это абсолютно правильно и решило проблему для меня. Не уверен, почему это не помечено как правильный ответ. - person Arkhitech; 12.01.2017
comment
Ответ Dbaq очень правильный. Но я нашел другой сценарий, в котором это все еще не работает (и вы можете получить всплывающее окно webView): URL-адрес должен быть правильно сформирован (т.е. если вы указываете папку, убедитесь, что вы вводите косую черту в конце: 'example.com/folder' покажет всплывающее окно, а 'example.com/folder' отлично работает) - person Miguel Guardo; 09.05.2018

пытаться

document.location=url;

если это не работает, установите плагин inAppBrowserи пользуйся этим

window.open(url,"_self");

и, конечно же, внутренняя функция готовности устройства.

person AtanuCSE    schedule 10.05.2015
comment
это не работает, он спрашивает, как заменить index.html. не использовать inappbrowser. - person dbaq; 12.05.2015
comment
И просто предположив, что вы проголосовали против!! Не думаешь ли ты, что было бы мудро, если бы он сам решил, чего он хочет на самом деле! В любом случае, нет ничего плохого в использовании inApp @dbaq. - person AtanuCSE; 12.05.2015
comment
Я ничего не угадываю, он сказал: Is there way to get the URL to open in the app (as in replace the current page) он хочет заменить текущую страницу, а не открывать в браузере (inapp или system) - person dbaq; 12.05.2015