パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

PhoneGap で画面横幅いっぱいにズーム

先日も、JavaScript なアプリをいじっていたが、それを PhoneGap 版にも反映させてみると、ISW13F では画面横幅一杯になってくれなかった。ブラウザ上で、Web ページとして開いた時はそんなことないのだが、PhoneGap 上だとダメだった。meta タグの Viewport を色々いじってみたが、一番惜しいのが target-densityDpi を high-dpi にした場合か。大きめには表示されるが、横幅一杯ではない。extrahigh-dpi とか適当にやると(この指定は効いてないのだと思うが)、今度は大きすぎてはみ出したり。

で、色々調べてみると、PhoneGap の Java ソースに2行ほど追加するとうまくいくらしい。src/com.phonegap/Droid.java/DroidGap.java の 210 行目辺りに、JavaScript を有効にしている部分がある。その後ろくらいに、以下の2行を追加すれば OK。

// Enable JavaScript
WebSettings settings = this.appView.getSettings();
....
// 横幅いっぱいにズームする
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);

ただ、画面回転が有効になっているとズームが大きくなりすぎたりする。この辺りは調整が必要そうだ。

しかし、なぜ PhoneGap のときだけ、meta タグ Viewport の target-densityDpi=device-dpi が効かないのだろう。そういや、PhoneGap 新しいのに入れ替えてない。さっさとアップデートしたほうが良さそう?