PhoneGapがviewportをサポートしないいくつかの方法を解決します


先日phonegapでGameBuilder+CanTKをコンパイルしたところ、HTMLのviewportが無効であることがわかりました.CanTKはデバイスのDPIをデバイスPixelRatioに従って検出し、viewportで正しい解像度を設定します.viewportが無効な場合、CanTKは最低解像度でしか実行できません.ネットで調べてみると、システムの資料も見つからなかったのですが、WebViewには必ずviewportを有効にする設定があることを知っていて、見つけた資料とphonegapのソースコードを合わせて、やっと解決方法を見つけました.ここでまとめます.
  • iOSプラットフォームの解決方法:phonegapのconfig.xmlに1行の構成を追加します:
    <preference name="EnableViewportScale" value="true"/>
    (不思議なことにandroidプラットフォームには無効です.CordovaWebView.javaを見ましたが、設定はありません)
  • androidプラットフォームの解決方法一:CordovaWebViewを修正する.java:
        settings.getUserAgentString();
         //        :
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true);
  • androidプラットフォームの解決方法2:CordovaWebViewを直接修正する.JAvaは良い方法ですが、GameBuilder+CanTKはphonegapのクラウドコンパイルをサポートしており、CordovaWebViewを直接修正することはできません.java.phonegapプラグインを思い出して、ViewPortScaleのプラグインを見つけて、コンパイルできないことに気づいて、自分でcomを書きました.tangide.viewportのプラグインは、GameBuilder+CanTKが提供するクラウドコンパイルを使用すると、すでにこのプラグインが内蔵されています.プラグインのソースコードはこちら:
    https://github.com/drawapp8/ViewPort