解決PhoneGap不支持viewport的幾種方法

前幾天用phonegap編譯GameBuilder+CanTK時,發現HTML裏的viewport無效。CanTK根據devicePixelRatio檢測設備的DPI,而後用viewport設置正確的分辨率。若是viewport無效,CanTK只能以最低分辨率運行。在網上查了一下, 也沒有找到系統的資料,但我知道WebView必定有相應的設置來啓用viewport,結合找到的資料和phonegap的源碼,終於找到了解決方法,這裏總結一下:php

  • iOS平臺的解決方法:在phonegap的config.xml中增長一行配置:

    <preference name="EnableViewportScale" value="true"/>

    (奇怪的是此方法對android平臺無效,我看了CordovaWebView.java,裏面沒有相關設置)
  • android 平臺的解決方法一:修改CordovaWebView.java:java

    settings.getUserAgentString();
         //增長下面兩行代碼:
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true);
  • android 平臺的解決方法二:直接修改CordovaWebView.java是個好辦法,可是GameBuilder+CanTK支持phonegap的雲編譯,沒有法直接修改CordovaWebView.java。我想到了phonegap插件,找到了一個ViewPortScale的插件,發現根本編譯不了,因此本身寫了一個com.tangide.viewport的插件,若是裏使用GameBuilder+CanTK提供的雲編譯,已經內置了這個插件。插件的源碼在這裏:android

    https://github.com/drawapp8/ViewPort
相關文章
相關標籤/搜索