読者です 読者をやめる 読者になる 読者になる

ジオマーリン

仕様を公開してアドバイスを受けながら geomerlin.com を構築していくスタイル。このシステムではデータサイエンスと人工知能技術により地政学リスクを算出しています。

MonacaのInappbrowserのエラーを遅延ロードで回避

モナカに大きなプロジェクト(長いjsファイルやエラー前提のシステム)を入れるとプラグインがうまく応答しないことがある。

 

これは憶測なので違ったら指摘して欲しいけど、プラグインが動かない原因はこれ

①仕様上devicereadyイベント発火ではじめてプラグインが使用可能

②devicereadyイベントまでに、jsファイルのロードが掛かり過ぎるORエラーが起こると、発火しないもしくは、プラグインのjsが作動しなくなる

 

というわけでバカでかいプロジェクトをそのままindex.htmlに直接書いたりロードするとうごかなくなりました。

そこで<script src="js/bakadeka.js"></script>と書いて読み込んだファイルを以下に変更

<script src="src/jquery.min.js"></script>
<script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
$.getScript("js/bakadeka.js")
}
<script>

何をしたかというと、ondevicereadyでプラグイン使用可能を確定したうえで、そのあとjsファイルを読み込んだ。(jqueryは各自でダウンロードしてコピペ+アップしてください)

ちなみにhtmlも遅延ロードしてみたが、うまく表示されなかったので諦めた。