cordovaアップデートが大変だった話(Android)
この件を記事にしたか覚えていないので、書いてみます。
Cordovaのバージョンが古いとのことで、Googleから通知が来てたのが去年のこと・・・
アップデートしない限りそのまま行けたのですが、機能拡張する必要があるとのことでcordovaのアップデートをしました。
その際につまったことをツラツラと。。。
cordovaアップデート
本体アップデート
npm update -g cordova
プロジェクトアップデート
cordova platform update android
これでAndroidは4.0+が対象になりました。問題あるけど、気にしない。
プラグインの名前が変わっている
- org.apache.cordova.PLUGINNAME + cordova-plugin-PLUGINNAME
だそうです。問題なし。
WEBViewが変わってる?
cordovaActivityからなくなっている関数を多数発見。動作しないことを確認。
ここで数日使用しました。
「makeWebViewClient」どこいった・・・
もともとこれが正しい形だったのかわかりませんが、URLのリンク内容をフックして独自処理をする際のコードを修正しました。
myFuncは独自処理用の関数。
WebView wV = (WebView)appView.getEngine().getView(); wV.setWebViewClient(new SystemWebViewClient((SystemWebViewEngine) appView.getEngine()){ public boolean shouldOverrideUrlLoading(WebView view, String url) { int result = myFunc(url, view); if (result == 1) { // フックする内容だった場合 return true; } else if( result == 2){ // そのままのURLで処理 return super.shouldOverrideUrlLoading(view, url); } else { // なにもしない return false; } } });
cordovaでの開発のあるべき形
前から思っていましたが、やっぱりcordovaでアプリを作るなら独自処理はpluginをつくって使用するのが正しいと実感。
今回の修正で若干うつになりましたが、無事に突破しました。
実装は1週間かな。(ただ本格的に戦う前に何回か挫折している・・・)
全部処理をmainコードに書いていましたが、プラグイン化に成功。
今後楽になることを期待します!!