欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

解决PhoneGap不支持viewport的几种方法

程序员文章站 2022-04-30 22:48:20
前几天用phonegap编译gamebuilder+cantk时,发现html里的viewport无效。cantk根据devicepixelratio检测设备的dpi,然后...

前几天用phonegap编译gamebuilder+cantk时,发现html里的viewport无效。cantk根据devicepixelratio检测设备的dpi,然后用viewport设置正确的分辨率。如果viewport无效,cantk只能以最低分辨率运行。在网上查了一下, 也没有找到系统的资料,但我知道webview一定有相应的设置来启用viewport,结合找到的资料和phonegap的源码,终于找到了解决方法,这里总结一下:

ios平台的解决方法:在phonegap的config.xml中增加一行配置:

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

(奇怪的是此方法对android平台无效,我看了cordovawebview.java,里面没有相关设置)

android 平台的解决方法一:修改cordovawebview.java:

  settings.getuseragentstring();
   //增加下面两行代码:
  settings.setusewideviewport(true);
  settings.setloadwithoverviewmode(true);

android 平台的解决方法二:直接修改cordovawebview.java是个好办法,但是gamebuilder+cantk支持phonegap的云编译,没有法直接修改cordovawebview.java。我想到了phonegap插件,找到了一个viewportscale的插件,发现根本编译不了,所以自己写了一个com.tangide.viewport的插件,如果里使用gamebuilder+cantk提供的云编译,已经内置了这个插件。插件的源码在这里:

https://github.com/drawapp8/viewport

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接