Приложение 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

Другие вопросы по тегам