раньше у вызова navigator.app.exitApp()
было всего несколько камней преткновения, но теперь и Google, и Apple создали серьезные препятствия для разработчиков.
- Убедитесь, что вы ждете
deviceready
события, прежде чем сделать вызов exit. Вы можете подумать о том, чтобы поставить заставку или затенить (отключить) кнопку или что-то еще, пока не сработает deviceready
и не загрузится библиотека Cordova.
- Это *препятствие*. Теперь вам нужно добавить плагин
whitelist
, а для Android добавить CSP
. Плагин необходим для CSP
. Вы можете обойти это, переместив весь Javascript (включая любой on*=
) и <style>
(и style=
) в отдельный файл. ИСКЛЮЧЕНИЕ для CSP
использования любых интернет-ресурсов.
В №1
Добавьте это в свой javascript:
// Wait for PhoneGap to load
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
// alert("deviceready");
document.getElementById('exitApp').addEventListener('click', function() {
navigator.app.exitApp();
});
}
Добавьте это в свой index.html:
<button id="exitApp">Exit</button>
На № 2 быстрый ответ:
Добавьте это в свой config.xml
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
ВНИМАНИЕ, ВАШЕ ПРИЛОЖЕНИЕ ТЕПЕРЬ НЕЗАЩИЩЕНО. ОБЕСПЕЧИТЬ БЕЗОПАСНОСТЬ ПРИЛОЖЕНИЯ ОТ ВАС.
Добавьте следующее в свой index.html
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src * 'self' 'unsafe-inline' 'unsafe-eval';
script-src * 'self' 'unsafe-inline' 'unsafe-eval';">
ВНИМАНИЕ, ВАШЕ ПРИЛОЖЕНИЕ ТЕПЕРЬ НЕЗАЩИЩЕНО. ЗАЩИТА ВАШЕГО ПРИЛОЖЕНИЯ ОТ ВАС.
Этот рабочий лист белого списка поможет вам, когда вы будете готовы повысить безопасность.
КАК: применить Cordova/Phonegap к системе белого списка
person
Community
schedule
03.02.2016