android webview 屏幕适应问题

红茶绅士
  • 67

target-densitydpi = device-dpi 用了之后虽然 webview的分辨率==实际窗体的分辨率

但是整个html以及js交互超级卡??这是为什么?

target-density据说不推荐用,那android端的替代方案是什么?

回复
阅读 6k
5 个回答

楼主你好:

第一个问题:屏幕自适应问题

<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">

一般在 html 头信息里面,添加这样的 meta 可以达到自适应屏幕的效果,前提是你的 css 支持哦。

第二个问题:html 和 js 交互,在 android 里面卡顿。

在官方Android4.4(国内很多手机厂商,并没有按照google的版本来哦)以下版本,webview的内核还是使用的WebKit,这款内核的性能和新的内核(Chromium)相比还是比较差的。但是一般来说,开启硬件加速会稍有改善。

// 在androidmanifest.xml 文件中添加如下代码。
<application android:hardwareAccelerated="true" ...>

注意:Android 硬件加速有好几种开启方式哦,点击这里

第三个问题:解决方案:

  • 如果楼主想开发纯粹的 web app, 请使用新款手机。官方Android4.4之后内核Chromium 性能 biu biu biu 的上升了。

  • 如果想支持低版本的 android, 可以尝试使用 cordova + crosswalk, 详情这里(ps: crosswalk的缺点也是有的哦)

这个设置可以对加载进来的html自适应屏幕
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);

用rem来写样式呗

<meta name="viewport" content="width=device-width, initial-scale=1" />

你这个是用来限制什么呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏