前幾天用phonegap編譯GameBuilder+CanTK時,發(fā)現(xiàn)HTML里的viewport無效。CanTK根據(jù)devicePixelRatio檢測設(shè)備的DPI,然后用viewport設(shè)置正確的分辨率。如果viewport無效,CanTK只能以最低分辨率運行。在網(wǎng)上查了一下, 也沒有找到系統(tǒng)的資料,但我知道WebView一定有相應(yīng)的設(shè)置來啟用viewport,結(jié)合找到的資料和phonegap的源碼,終于找到了解決方法,這里總結(jié)一下:
iOS平臺的解決方法:在phonegap的config.xml中增加一行配置:
<preference name="EnableViewportScale" value="true"/>
(奇怪的是此方法對android平臺無效,我看了CordovaWebView.java,里面沒有相關(guān)設(shè)置)
android 平臺的解決方法一:修改CordovaWebView.java:
settings.getUserAgentString(); //增加下面兩行代碼: settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true);
android 平臺的解決方法二:直接修改CordovaWebView.java是個好辦法,但是GameBuilder+CanTK支持phonegap的云編譯,沒有法直接修改CordovaWebView.java。我想到了phonegap插件,找到了一個ViewPortScale的插件,發(fā)現(xiàn)根本編譯不了,所以自己寫了一個com.tangide.viewport的插件,如果里使用GameBuilder+CanTK提供的云編譯,已經(jīng)內(nèi)置了這個插件。插件的源碼在這里:
https://github.com/drawapp8/ViewPort
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對VEVB武林網(wǎng)的支持。
新聞熱點
疑難解答