19
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS 10 で Cordova/Phonegap アプリが動かなくなった

Last updated at Posted at 2016-09-27

具体的には deviceready イベントが発火しなくなったので、テンプレート通りに初期化処理を入れているとコールされない。

Content Security Policy に gap://readyfile:を追加することで動作するようになる。

http://stackoverflow.com/questions/38410159/ より参考実装を引用させて貰うとこんな感じ。

index.html
<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready file:; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src * 'unsafe-inline' 'unsafe-eval'">

CSP いつも書き方が分からなくなり追加する場所をミスったりするので、実際に自分が追加した例もメモ程度に。

index.html
<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-eval' 'unsafe-inline' gap://ready file:; style-src 'self' 'unsafe-inline'; media-src *; img-src * 'self' filesystem: data: blob:;" />

追記

テンプレートから作ると CSP 記述の下にコメントで

  * gap: is required only on iOS (when using UIWebView) and is needed for JS->native communication

という記載があり、iOS 9 迄でこれ無しで動かしていた場合は gap: だけ追加することで動くこともある様子。

19
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?