Приложение Кордовы, зависающее во время запуска на iOS 10
Я только что установил бета-версию Xcode 8, чтобы протестировать существующее приложение Кордовы в бета-версии iOS 10 (через Simulator). Когда приложение запущено, оно просто зависает на странице загрузки - кажется, что событие deviceready
не запускается.
Итак, я также установил бета-версию iOS 10 на свой iPad Air (на всякий случай это проблема симулятора), но я получаю те же результаты.
Приложение отлично работает на iOS 9.3 (как на устройстве, так и на Simulator).
Кто-нибудь столкнулся/исправил эту проблему?
UPDATE
Другие симптомы этой проблемы включают:
- приложение запустится правильно, если вы запустите приложение (вернитесь на главный экран), а затем перейдите в приложение (вернитесь к приложению)
- некоторые плагины будут работать некорректно, пока вы не выполните вышеуказанное переключение
Ответы
Ответ 1
ОК, я нашел проблему и решение благодаря этот пост:
Кажется, что iOS 10 требует дополнительных записей в метатеге Content-Security-Policy
, а именно gap:
и file:
. После добавления, мой Content-Security-Policy
выглядит следующим образом:
<meta http-equiv="Content-Security-Policy" content="default-src * gap: file:; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src * 'unsafe-inline' 'unsafe-eval'">
И приложение запускается и отлично работает на iOS 10.
Надеюсь, что это поможет другим.
Ответ 2
У меня была такая же проблема во время запуска, и даже если бы я сделал двойной щелчок на домашней кнопке и обратно в приложение, файловая система cordova не записывала бы на устройство.
Я пробовал много вещей, но, наконец, исправил его, добавив
child-src * gap://ready
в тег Политика безопасности