カテゴリー別アーカイブ: Monaca

【Monaca】古いAndroidのWebViewでMonacaの機能が動かなかった件

またもやMonacaネタです。

Monacaで開発をしていて、テストビルドがAndroid4.4で動かない問題が発生しました。

エラー内容は、

Uncaught TypeError: Object #<PageElement> has no method 'matches'

プログラムとしては特に大したことはしておらず、以下のようにページの判定をしたいだけでした。

document.addEventListener('init', function(event) {
    var page = event.target;
    if (!page.matches('#register-page')) {
        ~~~
    }

どうやらevent.targetの指定がうまく動作しないようです。

サポートに聞いたところ、「Crosswalk WebView Engine」というプラグインを入れることで解決しました。

これは独自のWebViewをアプリに含めることで、Androidのバージョン間の差異を吸収してくれるプラグインらしいです。

ただし、これをインストールすると5MBほどだったアプリの容量が30MBほどに増えてしまいました。

解決したのはたいへん助かったのですが、この容量の増加はさすがに考えものですね・・・

【Monaca】AndroidとiOSのデザインを共通化

タイトルのとおりですが、MonacaのOnsenUI2でAndroidのデザインがiOSとは別になってしまう際に共通化する方法です。

OnsenUI2はデフォルトの状態だと、Android版ではネイティブのUIを使うようになっています。

ネイティブのUIを使うことでAndroidに合ったアプリの開発が可能になりますが、開発のコストやデザインを考えてiOSと共通にしたい方もいるかと思います。

そんな時は、スクリプトの最初に

ons.disableAutoStyling();

を付けるといいみたいです。