脇の甘い日常

プログラミング関係のお仕事ネタや、チャリ、マラソン、トレランなどの趣味ネタを書き綴っていこうと思います

ハイブリッドアプリに色んな意味で大ハマリ (4)

前までやっていたものとは別件で、ハイブリットアプリの調査案件を頂いた。 

 

主な要件として、通常は外部サーバのコンテンツを表示するが、ネットワーク障害などのときにはローカルコンテンツを見せて、ある程度の機能を提供できるというもの。これをWindowsタブレットで実現する。 

 

色々な選択肢があるが、Visual StudioがCordovaと連携できるようになったので、Cordovaの線で調査を進める。で、早速つまずいてしまった。

 

ネットワーク障害が発生したらページ遷移失敗のイベントを捕まえてローカルページに遷移させようと考えていたが、どんだけ探してもCordovaにページ遷移のイベントをハンドルできるような仕組みが見つけれない。

しばらく四苦八苦した後、ようやく悟った。そもそもCordovaは基本的にシングルページを前提としてるみたいだ。となるとページ遷移はJavaScript内で管理できるし、ajaxの通信エラーもJavaScript内で処理できる。わざわざネイティブでやる必要がないのだ。

というかJavaScript+HTML+CSSで全部できてしまうのがCordovaの真骨頂であり、Microsoftも、JavaScriptしか知らないWEB技術者をWindowsの世界に引き込もうとしてCordovanを連携させたと思われる。C#が出来るならWebViewコントロールでいいじゃないかという話だ。

 

今回の案件は今までPCで動いていた伝統的なマルチページのプログラムをベースにするので、シングルページで書き直すという選択肢は無い。カメラアプリとかをJavaScriptで手軽に使えるのは、とても魅力的なのだが、諦めざるをえんかなぁ。。。