搜索

首页  >  问答  >  正文

viewport - android webview 屏幕适应问题

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

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

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

阿神阿神2773 天前679

全部回复(5)我来回复

  • 怪我咯

    怪我咯2017-04-17 16:32:42

    楼主你好:

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

    <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的缺点也是有的哦)

    回复
    0
  • ringa_lee

    ringa_lee2017-04-17 16:32:42

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

    回复
    0
  • 迷茫

    迷茫2017-04-17 16:32:42

    用rem来写样式呗

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-17 16:32:42

    回复
    0
  • 怪我咯

    怪我咯2017-04-17 16:32:42

    你这个是用来限制什么呢

    回复
    0
  • 取消回复