解决PhoneGap不支持viewport的几种方法
作者:李先静 发布时间:2023-03-13 01:51:15
前几天用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
来源:https://blog.csdn.net/absurd/article/details/44885991


猜你喜欢
- 初始化方式一:@PostConstruct注解假设类UserController有个成员变量UserService被@Autowired修饰
- 1 C++类型转换本质1.1 自动类型转换(隐式)利用编译器内置的转换规则,或者用户自定义的转换构造函数以及类型转换函数(这些都可以认为是已
- C# using 三种使用方式介绍1.using指令。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的
- 前言锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。
- Spring简介1.什么是Springspring是分层的JavaSE及JavaEE应用于全栈的轻量级开源框架,以 IoC (Inverse
- 方法引用和构造器引用了解了 Lambda 表达式有一段时间了,但是都没有怎么练习,一直停留在最低层次的了解程度,这对于追求技术进步的人来说确
- 1、添加依赖<dependency> <groupId>org.springframewo
- 参考链接亲测试以下版本成功激活附激活教程。idea下载链接(对应版本号下载):https://www.jetbrains.com/idea/
- 再看文章之前,希望大家先打开自己的微信点到朋友圈中去,仔细观察是不是发现朋友圈里的有个“九宫格”的图片区域,点击图片又会跳到图片的详细查看页
- List<T>.sort()可以实现对T的排序,比如List<int>.sort()执行后集合会按照in
- 数值类型之间的转换6个实心箭头箭头表示无信息丢失的转换;3个虚箭头表示可能有精度损失的转换.当使用上面两个数值进行二元操作时,先要将两个操作
- 废话不多说,直接上代码package com.ncu.list;/** * * 顺序结构线性列表 *&nbs
- 一、Struts2文件上传 Struts2的文件上传实现非常简单,只需要简单几步就可完成;注意:(1)文件上传的struts2标签
- 本文实例讲述了C#简单读取、改变文件的创建、修改及访问时间的方法。分享给大家供大家参考。具体如下:FileInfo fi = new Fil
- 需求描述:企业开发过程中,经常需要将一些静态文本数据放到Resources目录下,项目启动时或者程序运行
- <script>//验证身份证号方法var test=function(idcard){var Errors=new Array
- 我们知道Android手机操作系统采用的是Linux内核,Linux中最高的系统权限就是Root,这就类似与Windows中的Adminis
- Interceptor讲到Interceptor,相信熟悉struts2的童鞋肯定不会陌生了,struts2可以自定义 * 进行自己想要的一
- 概述模板方法模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。那么什么是模板方法呢?我们看下模板方法的定义。一个具体方法而非
- Google 发布的Material Design支持库,对我们的APP设计有很大的影响,如果重新设计APP,支持库应该直接用V4提升到V7