kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

cordovaのアップデートが大変で終わらない話(iOS)

Androidはなんとかアップデートできました。

本来ならcordovaを使用しているので、iosも終わりですよね。と思いましたが、mainをいじってしまっているのです。

cordova自体のアップデートは必要なかったので、リリース自体は大変ではなかったのですが、落とし穴がいくつかあり対処しきれていない状態です。

困っている現状を書きます。

cordovaアップデート

問題なし。

UIWebviewとWKWebview

いつの間にか処理エンジンが増えてました。

cordovaでも標準では利用できないみたいですが、プラグインをいれることで対応できるみたいです。

cordova plugin add cordova-plugin-wkwebview-engine

UIWebviewはいままでのWebviewで、WKWebviewがiOS8あたりで追加された機能みたいです。

WKWebviewのほうが不具合などかなり直されているみたいでできるならこっちにしたいですね。

shouldStartLoadWithRequest

まず詰まったところです。UIWebViewであった「shouldStartLoadWithRequest」が使えないこと。

WKWebviewでは「decidePolicyForNavigationAction」であること。

これはcordovaがきっと吸収してくれてるよね。と祈ったが、ダメっぽかったです。

いまだにこれの処理で困ってます。どうやって分岐しよう。

OSバージョンみてやるだけかな??

ATS

ATS(App Transport Security)ですね。いろいろみると2017年には本格的に対応した形でSSLにしないと弾かれるっぽい記事がありますね。

そろそろコンフィグでfalseにしてもダメな感じがしてきました。

そして今回の壁がプロトコルの問題なのかな??

「native://」でURLフック用に使っていた独自記述プロトコルが動かなくなりました。

javascriptの方でエラーが出ていて動作しない。

たぶん呼び出し方が悪いんでしょうが、webのソースも直す必要があると思うと影響範囲が大きくて踏み切れないです。

ホワイトリストに正しく追加すればいける。みたいな記事もあるけどダメだった。

ios10になって厳しくなりすぎではないでしょうか・・・

別件だがlocalstorageに保存できない場合が発生

UIWebviewを使用していたが、localstorage(Html5機能)に保存されている内容が消えるケースが発生。

アプリをインストールして初期起動の場合のみ、保存されていた内容が消えているケースがあり、根本解決できず。

ios10でのみ発生しているが、ios10のlocalstorageはベータ版の際に不具合が報告されていたので、不具合だと信じたい。

ただどうしようもないので、native側のplistに持たせる決断をして改修をお願いすると思う。。。

アップデートは大変

毎度osのアップデートで動かなくなるのはきついですね。

情報が多くあるわけではないので、さらに大変(このあたりは堕落ですかね・・・)

UIとかもionicとかにしたいけど、基本機能が動いていないのでいろいろ試せない状態。

今年度乗り切りたいです。。。