Приложение Cordova зависает при запуске на iOS 10
Я только что установил бета-версию Xcode 8, чтобы протестировать свое существующее приложение Cordova в бета-версии iOS 10 (через симулятор). Когда приложение запускается, оно просто висит на странице загрузки - кажется, deviceready
событие не запускается.
Поэтому я также установил бета-версию iOS 10 на свой iPad Air (на случай, если это проблема с симулятором), но я получаю те же результаты.
Приложение отлично работает на iOS 9.3 (как на устройстве, так и на симуляторе).
Кто-нибудь сталкивался / исправил эту проблему?
ОБНОВИТЬ
Другие симптомы этой проблемы включают в себя:
- приложение запустится корректно, если вы создадите фоновое приложение (переключитесь обратно на домашний экран), а затем на передний план приложения (переключитесь обратно на приложение)
- некоторые плагины не будут работать правильно, пока вы не выполните вышеуказанное переключение
2 ответа
Хорошо, я нашел проблему и решение благодаря этому сообщению:
Похоже, что 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.
Надеюсь, что это помогает другим.
У меня возникла та же проблема во время запуска, и даже если бы я дважды нажал на кнопку "Домой" и вернулся в приложение, файловая система cordova не записывала бы на устройство.
Я много чего перепробовал, но наконец исправил, добавив
child-src * gap://ready
в тег Content-Security-Policy