У меня есть приложение Cordova, это одностраничное приложение с одним HTML-файлом.Кордова, зачем нужен плагин InAppBrowser для открытия ссылок в системном браузере
Все ссылки должны открываться в системном браузере. Я не хочу «встроенный» InAppBrowser, но действительно собственный системный/внешний браузер.
Везде можно найти пример кода с использованием InAppBrowser что-то вроде:
window.open('http://apache.org', '_system');
Но почему нам нужно установить InAppBrowser, даже если мы даже не планируем использовать встроенный браузер?
Может ли кто-то действительно узнать, что должно быть поведением WebView, относительно цели ссылки. Неясно, что он должен делать с target=_blank
, но я не вижу ничего другого, кроме него, кроме открытия нового окна браузера.
Обратите внимание, что проблема, похоже, связана только с iOS, потому что с Android (с плагином Crosswalk) с использованием target=_blank
, похоже, всегда работает нормально и открывается в новом окне собственного браузера.
Ну, с моей точки зрения, вы всегда находитесь в веб-просмотре. Теперь вы хотите запросить главный системный браузер. Теперь нормальная ошибка _target может не всегда работать особенно на всех платформах поддержки cordova. Чтобы преодолеть это, мы используем inappbrowser, который проходит через собственный слой, чтобы вызвать браузер. Таким образом, мы можем гарантировать рабочее решение на всех поддерживаемых платформах. –
@SaniYusuf, но тогда почему бы не создать плагин, который просто не является «InAppBrowserPlugin» и открывает все ссылки с _blank в системном браузере?Я чувствую, что плагин пытается решить две различные проблемы, одна из которых не была четко указана в имени плагина (но не совсем уверен, как это не объяснено) –
@jcesarmobile Я сделал, и на самом деле это заставило все запросы Ajax терпеть неудачу Android, насколько я знаю. Также он не документирован здесь: https://github.com/apache/cordova-plugin-whitelist –