Внешние ссылки в приложении phonegap не открываются хорошо
Итак, у меня есть проект phonegap с Phonegap 2.9.0 и здание с PhonegapBuild.
Я получил внешние ссылки в своем приложении, которые я хотел бы открыть inapp или использовать браузер устройств по умолчанию вне моего приложения. Я в порядке для обоих решений. Сегодня мое приложение открывает ссылки inapp, но оно переходит в полноэкранный режим, масштабирование невозможно, и кнопка не возвращается в приложение...
Я пытаюсь найти решение в течение нескольких дней, и глядя на те же вопросы здесь, но ничего не работает хорошо.
может кто-нибудь объяснить ясно, что все это значит, и каковы различные варианты/параметры, потому что я могу сказать, что это не ясно/легко вообще!
Вопрос 1 :
Я бы начал с вопроса : в конфигурации файла.xml предпочтение stay-in-webview теперь устарело для phonegap 2.3.0 правильно? Значит, надеяться не на что?
Q2 :
Я много читал и пробовал о плагине InAppBrowser с window.открытая и целевая система / пробел / собственная личность, но без различий для мне. Я остаюсь InApp, но бесполезен, потому что нет кнопок навигации.
Я что-то упускаю?
plugin name="InAppBrowser" value="CDVInAppBrowser"
5 ответов
Я бы начал с вопроса : в конфигурации файла.xml предпочтение stay-in-webview теперь устарело для phonegap 2.3.0 правильно? Значит, надеяться не на что?
это правильно. Даже не беспокойтесь об этой настройке, если вы используете 2.9
Я много читал и пробовал о плагине InAppBrowser с окном.открытая и целевая система / пустая / я, но никаких различий для меня. Я остаюсь InApp, но бесполезен, потому что нет кнопок навигации. Я скучаю? здесь что-то есть?
у меня было несколько проблем, чтобы заставить это работать. Их документация немного разбросана и должна прочитать все это. Вот как я заставляю его работать:
- убедитесь, что у вас есть
<script src="phonegap.js"></script>
на каждой из ваших страниц, которые хотят использовать inappbrowser - вам не нужно включать тег плагина в вашу конфигурацию.XML. Я уверен, что около 2.5 они включили inappbrowser в основную сборку функциональность.
-
чтобы открыть ссылку в inappbrowser, используйте этот javascript:
function openURL(urlString){ myURL = encodeURI(urlString); window.open(myURL, '_blank'); }
это откроет переданный URL-адрес в inappbrowser. Если вы измените
window.open(myURL, '_blank');
towindow.open(myURL, '_system');
Он откроет переданный URL-адрес в системном браузере. -
наконец, Ваш пункт щелчки выглядят следующим образом:
<a href='#' onclick='openURL("http://www.urlyouwant")/>
или вы можете прикрепить список событий к объекту, но я думаю, что вы получите точка.
кроме того, InAppBrowser имеет много слушателей событий, которые вы можете прикрепить к нему. Взгляните на документация если вас это интересует.
важно!!!! Не забывайте Шаг 1!
надеюсь, что это помогает.
есть 2 разных способа открыть URL в Android и iOS.
для IOS используйте следующий код:
window.open("http://google.com", '_system');
и для Android используйте следующий код:
navigator.app.loadUrl("http://google.com", {openExternal : true});
ответ Dom работает для использования PhoneGap 2.9.0
, как он сказал, очень важно следовать шаг #1. Я использую https://build.phonegap.com для компиляции моего приложения, и я использовал
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
чтобы заставить это работать вместо шага #1
Если все остальное не удается, попробуйте этот пример. Об этом написал один из сотрудников phone gap:
если внешние ссылки не открываются ЧИТАЙТЕ ДАЛЕЕ.
обновление: 2016-03-20 Я создал учебник по этому вопросу.
учебник: Phonegap построить внешнюю веб-страницу в iframe с примером белого списка
если Вы читаете это, вы можете заметить, что этот пост относится к 2.9.0 для сборки Cordova/Phonegap/Phonegap. 2.X официально устарел и нет дольше поддерживается.
если вы используете 2.X и вы хотите продолжить разработку приложения, обновления.
если вы компилируете с 3.x, 4.x или 5.x или лучше, читайте дальше.
если вы погуглили что-то вроде внешние ссылки не открываются, тогда вот что вам должен знать. В сентябре и октябре 2015 года Cordova и Phonegap внесли некоторые серьезные изменения. Эти изменения вступили в силу white-list
ing
White-list
ing означает, что вы *должны * предоставить системе белый список внешних ссылок, которые вы планируете использовать. Вся система может сбивать с толку. В настоящее время я работаю над сообщением в блоге, но до тех пор вот что вам нужно знать.
на white-list
система состоит из трех (3) частей
- белый список предоставить в ваше
config.xml
- плагин белого списка, который вы добавляете в свой
config.xml
- CSP (политика безопасности контента), которая размещается на каждой веб-странице (только один раз, если вы делаете SPA)
приложение не является прямым. Если вы используете версию 3.x, вам не нужно. Если вы используете 4.X или лучше, это относится к вам. Если вы используете 5.x, там еще больше правил, которые применяются. Как я уже сказал, Я работаю над постом в блоге, но этот белый список настолько обременителен, что я нужно сообщить всем.
вот ссылки, необходимые для начала работы.
- последний плагин белого списка
- Руководство Белого Списка Phonegap
- Phonegap Построить Белый Список Руководство
здесь больше объяснения:
тайм-Аякс запрашивает Cordova 5
кроме того, вы можете прочитать #10 от лучшие ошибки разработчиков new to Cordova / Phonegap
если вы храбры, вы можете прочитать мой * RAW* Примечания Cordova / Phonegap система белого списка