wkwebview禁止缩放怎样禁止双击缩放

viewport 语法介绍:
&!-- html document --&
&meta&name="viewport"
&&&&content="
&&&&&&&&height = [pixel_value | device-height] ,
&&&&&&&&width = [pixel_value | device-width ] ,
&&&&&&&&initial-scale&=&float_value&,
&&&&&&&&minimum-scale&=&float_value&,
&&&&&&&&maximum-scale&=&float_value&,
&&&&&&&&user-scalable = [yes | no] ,
&&&&&&&&target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi]
控制 viewport 的大小,可以指定的一个值或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。
和 width 相对应,指定高度。
target-densitydpi
一个屏幕像素密度是由屏幕分辨率决定的,通常定义为每英寸点的数量(dpi)。Android支持三种屏幕像素密度:低像素密度,中像素密度,高像素密度。一个低像素密度的屏幕每英寸上的像素点更少,而一个高像素密度的屏幕每英寸上的像素点更多。Android Browser和WebView默认屏幕为中像素密度。
下面是 target-densitydpi 属性的 取值范围
device-dpi &使用设备原本的 dpi 作为目标 dp。 不会发生默认缩放。
high-dpi & 使用hdpi 作为目标 dpi。 中等像素密度和低像素密度设备相应缩小。
medium-dpi & 使用mdpi作为目标 dpi。 高像素密度设备相应放大, 像素密度设备相应缩小。 这是默认的target density.
low-dpi -使用mdpi作为目标 dpi。中等像素密度和高像素密度设备相应放大。
&value& & 指定一个具体的dpi 值作为target dpi. 这个值的范围必须在70&400之间。
&!-- html document --&
&meta&name="viewport"&content="target-densitydpi=device-dpi"&/&
&meta&name="viewport"&content="target-densitydpi=high-dpi"&/&
&meta&name="viewport"&content="target-densitydpi=medium-dpi"&/&
&meta&name="viewport"&content="target-densitydpi=low-dpi"&/&
&meta&name="viewport"&content="target-densitydpi=200"&/&
为了防止Android Browser和WebView 根据不同屏幕的像素密度对你的页面进行缩放,你可以将viewport的target-densitydpi 设置为 device-dpi。当你这么做了,页面将不会缩放。相反,页面会根据当前屏幕的像素密度进行展示。在这种情形下,你还需要将viewport的width定义为与设备的width匹配,这样你的页面就可以和屏幕相适应。
initial-scale
初始缩放。即页面初始缩放程度。这是一个浮点值,是页面大小的一个乘数。例如,如果你设置初始缩放为&1.0&,那么,web页面在展现的时候就会以target density分辨率的1:1来展现。如果你设置为&2.0&,那么这个页面就会放大为2倍。
maximum-scale
最大缩放。即允许的最大缩放程度。这也是一个浮点值,用以指出页面大小与屏幕大小相比的最大乘数。例如,如果你将这个值设置为&2.0&,那么这个页面与target size相比,最多能放大2倍。
user-scalable
用户调整缩放。即用户是否能改变页面缩放程度。如果设置为yes则是允许用户对其进行改变,反之为no。默认值是yes。如果你将其设置为no,那么minimum-scale 和 maximum-scale都将被忽略,因为根本不可能缩放。
所有的缩放值都必须在0.01&10的范围之内。
(设置屏幕宽度为设备宽度,禁止用户手动调整缩放)
&&meta name="viewport" content="width=device-width,user-scalable=no" /&
(设置屏幕密度为高频,中频,低频自动缩放,禁止用户手动调整缩放)
&meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/&
阅读(...) 评论()4507人阅读
flash(48)
android(280)
现在的手机或平板电脑等移动设备上的浏览器默认都有双击放大的设置,怎么让双击不放大?
18:00:57 在Mobile页面上有提供viewport这个meta,可以用它来设置缩放。
但是在使用viewport之前要把页面的文档类型改成Mobile类型。
通常的页面DTD都是XHTML或者简单的HTML5声明,移动设备要用下面这个声明。
&!DOCTYPE&html&PUBLIC&&-//WAPFORUM//DTD&XHTML&Mobile&1.0//EN&&&http://www.wapforum.org/DTD/xhtml-mobile10.dtd&&设置了DTD之后就可以使用viewport使页面禁止缩放了。
通常把user-scalable设置为0来关闭用户对页面视图缩放的行为。
&meta&name=&viewport&&content=&user-scalable=0&&/&但是为了更好的兼容,我们会使用完整的viewport设置。
&meta&name=&viewport&&content=&width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0&&/&如果需要更详细的关于viewport的资料可以参考MDN
00:03:39 btw,我所知道的貌似DTD只声明成HTML5就可以了,下面加上viewport的标签。
21:08:33 &-&&&-&site1&site&
&a&href=&site2&/a&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:766789次
积分:9452
积分:9452
排名:第1761名
原创:104篇
转载:464篇
评论:181条
(2)(2)(9)(19)(13)(3)(12)(40)(32)(13)(29)(15)(7)(12)(37)(15)(23)(12)(20)(12)(13)(20)(31)(16)(11)(11)(3)(22)(16)(25)(13)(9)(12)(24)(8)(7)WebView双击页面自动放大的问题
如题,我已经对要加载的网页做了缩放,现在是双击页面就自动放大,我想禁止这个功能,怎么实现呢,能捕捉到webview的双击事件吗?另一个问题,就是怎么控制webview的缩放比例(在不同的屏幕密度下)
请问你这个问题解决了吗?
--- 共有 3 条评论 ---
: &meta name="viewport"
content="width=device-width,initial-scale=0.5,minimum-scale=0.5, maximum-scale=2.0" /&
网页端要写什么才可以?
这个是网页端要做的11576人阅读
Android大神之路(38)
转载请标明出处:
之前转载过Android webview相关的文章,,这里讲解一下实现Webview缩放以及隐藏缩放控制条所遇到的问题和坑
要支持缩放,肯定要先支持Javascript,加如下代码:
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
重点来了,要想支持缩放,要加如下代码支持
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
其中settings.setBuiltInZoomControls(true)必须要加,不然缩放不起作用,笔者就曾在这掉过坑
经过上述代码,就可以实现webview缩放了,代码很简单,但是又有一个蛋疼的问题,那就是在你缩放的时候webview右下角会出现一个讨厌的缩放控制条,如下图所示:
我们怎样去掉它呢,在Android3.0之后实现非常简单,加一句代码就可以了,如下代码:
settings.setDisplayZoomControls(false);
其实到这里本文就应该到此为止了,但有的同学问,你这个只兼容到3.0以上版本,我要是兼容到2.x版本呢?我想说的是,其实没有必须再兼容到2.x版本了,2.x的用户量很少了,4.x以上的用户已经占到94%以上了,下面看AndroidStudio统计的各个平台版本的用户使用比率:
所以说,我们没有必要兼容2.x了,就像IOS开发只兼容到IOS7版本就OK了,但是有的同学又说,我有强迫症,我就想兼容到2.x版本,其实解决方案网上都有了,这里用到了java反射的知识,通过反射来获取私有的属性控件mZoomButtonsController,然后就其setVisibility(View.GONE)隐藏就可以了,下面贴出代码实现:
public void setZoomControlGone(View view){
Class classT
classType = WebView.
field = classType.getDeclaredField("mZoomButtonsController");
field.setAccessible(true);
ZoomButtonsController mZoomButtonsController = new ZoomButtonsController(view);
mZoomButtonsController.getZoomControls().setVisibility(View.GONE);
field.set(view, mZoomButtonsController);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
经过上面的反射代码,就可以达到兼容2.x版本来隐藏缩放控制条了,谢谢大家!
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:409423次
积分:3420
积分:3420
排名:第9116名
原创:44篇
转载:13篇
评论:212条
(1)(1)(1)(2)(1)(1)(1)(1)(4)(3)(6)(6)(4)(3)(2)(8)(8)(1)(1)(1)(1)(1)

我要回帖

更多关于 webview双击放大 的文章

 

随机推荐