Устройство Cordova уже не стреляет в iOS до взаимодействия с iOS
У меня была действительно странная ошибка, когда событие deviceready не срабатывало на устройстве iOS, пока пользователь не взаимодействовал с самой ОС, то есть, нажав кнопку на передней панели, показывало центр уведомлений с помощью перетаскивания или переходил к настройкам устройства при перетаскивании вверх.
Как только пользователь начал перетаскивать центр уведомлений iOS, устройство уже запущено.
Что-то такое простое, как это, просто не сработает:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width" />
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data:* gap:* tel:* 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'" />
<title></title>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
</head>
<body>
<div id="log"></div>
<script type="text/javascript">
var log = document.getElementById("log");
if(window.cordova){
log.innerHTML = "with cordova";
document.addEventListener("deviceready", function onDeviceReady(){
log.innerHTML = "deviceready";
}, false);
}else{
log.innerHTML = "with browser";
}
</script>
</body>
</html>
2 ответа
Проблема была действительно тонкой. Я потратил около 4 часов на отладку iOS, почему Cordova не запускалась, пока не увидел, что мне не хватает двух //
, Прямо здесь:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data:* gap://* tel:* 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'" />
этот маленький gap
в Content-Security-Policy должно было быть два //
впереди, чтобы это работало. Это решило мою ошибку, я до сих пор не понимаю, почему.
Надеюсь это поможет!
У меня была такая же проблема на iOS. Наконец, любой из этих двух обходных путей сработал
добавлять
<meta http-equiv="Content-Security-Policy".......>
индексировать.Понизьте платформу до 4.0.0 (обновление платформы Cordova iOS@4.0.0)
Выполнение первого варианта является предпочтительным, поскольку понижение до 4.0.0, вероятно, не является предпочтительным для вас.