栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

WebView相关面试题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

WebView相关面试题

1、如何提高WebView加载速度

美团技术分享

WebView启动过程大概分为以下几个阶段:

App中打开WebView的第一步并不是建立连接,而是启动浏览器内核。

优化手段围绕着以下两个点进行:

  • 预加载WebView。

  • 加载WebView的同时,请求H5页面数据。

常见的方法是全局WebView,在客户端刚启动时,就初始化一个全局的WebView待用,并隐藏;这种方法可以比较有效的减少WebView在App中的首次打开时间。当用户访问页面时,不需要初始化WebView的时间。

当然这也带来了一些问题,包括:

  • 额外的内存消耗。
  • 页面间跳转需要清空上一个页面的痕迹,更容易内存泄露。
  • 客户端代理页面请求WebView初始化完成后向客户端请求数据
  • 在客户端初始化WebView的同时,直接由native开始网络请求数据;
  • 当页面初始化完成后,向native获取其代理请求的数据。
  • asset存放离线包。

除此之外还有一些其他的优化手段:

  • DNS和链接慢:
    • 想办法复用客户端使用的域名和链接,可以让客户端复用使用的域名与链接。
    • DNS采用和客户端API相同的域名
    • DNS会在系统级别进行缓存,对于WebView的地址,如果使用的域名与native的API相同,则可以直接使用缓存的DNS而不用再发起请求图片。
  • 脚本执行慢:可以把框架代码拆分出来,在请求页面之前就执行好。
  • 后端处理慢:可以让服务器分trunk输出,在后端计算的同时前端也加载网络静态资源。
2、WebView与 js的交互

Android去调用JS的代码:

  1. 通过WebView的loadUrl()

  2. 通过WebView的evaluateJavascript()

JS调用Android代码的方法:

  1. 通过WebView的addJavascriptInterface()进行对象映射

  2. 通过 WebViewClient 的shouldOverrideUrlLoading ()方法回调拦截 url

  3. Android通过 WebChromeClient 的onJsalert()、onJs/confirm/i()、onJsprompt(方法回调分别拦截JS对话框(即上述三个方法),得到他们的消息内容,然后解析即可。

3、WebView的漏洞

Android WebView常见的安全漏洞和解决方案

4、JsBridge原理

JSBridge的原理

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/459936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号