本日は、昨日投稿した「【Cordova】iOSでスワイプジェスチャーを有効にする」でプラグインを導入した際に、API へのアクセスが拒否されてしまった時の対処法についてです。
なお、その時に追加したプラグインは「cordova-plugin-wkwebview-engine」で、iOS で使用している WebView
を UIWebView
から WKWebView
に変更するものです。
これを導入すると、スワイプジェスチャーによるブラウザバックを有効にすることができ、操作性がよくなります。
さて、今回導入したプラグインは「cordova-plugin-wkwebview-file-xhr」です。
GitHub のページはこちらです。
GitHub – oracle/cordova-plugin-wkwebview-file-xhr: Cordova Plugin for WebView File XHR
https://github.com/oracle/cordova-plugin-wkwebview-file-xhr
プラグインの導入方法ですが、下記のコマンドを実行するだけです!
cordova plugin add cordova-plugin-wkwebview-file-xhr
コマンドの実行が完了したらもうOKです。
前回のプラグインと異なり、config.xml
等を変更する必要はありません。
再度ビルドして実行したところ、無事、以前から使用していた API にアクセスすることができました!
何でも、前回使用するように変更した WKWebView
は、file://
スキームで、XHR
にアクセスしているとのこと。
そのため、インターネット上で公開されている API は、オリジンが異なるためアクセスが拒否されてしまいます。
で、今回のプラグインはそれを解消してくれるらしいです。
…GitHub に説明がありましたが、いまいちよくわかりませんでした…。
時間を見つけて、勉強したいと思います。
このあたりは苦手なので、きちんと理解しなければ…。
以上、Cordova で開発した iOS アプリを WKWebView を使用するように変更した際に、CORS に対応する方法についてでした。
ご参考になれば幸いです。