zoukankan      html  css  js  c++  java
  • 客户端相关知识学习(五)之什么是webView

    webview是什么?作用是什么?和浏览器有什么关系?

    Android系统中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件也就是说WebView是一个基于webkit引擎、可以解析DOM 元素展现web页面的控件,它和浏览器展示页面的原理是相同的所以可以把它当做浏览

    器看待

    WebView是用于展示网络请求后的结果,也就是将url网络请求的结果展示在里面。

    Android的Webview在低版本和高版本采用了不同的webkit版本内核,Android4.4后直接使用了Chrome。

    webview主要用于什么地方?或者说什么需求下会使用到webview?

    个人理解,电脑上展示html页面,通过浏览器打开页面即可浏览,而手机系统层面,如果没有webview支持,是无法展示html页面,所以webview的作用即用于手机系统来展示html界面的

    所以它主要在需要在手机系统上加载html文件时被需要

    WebView的作用

    • 显示和渲染Web页面;

    • 直接使用html文件(网络上或本地assets中)作布局;

    • 可和JavaScript交互调用。

    一个原生应用调用html页面的过程?

    • 原生应用加载html页面(加载页面的方式可能有多种,比如加载本地写好的html文件,或者放置在服务器的文件)

    • 加载完成,展示就是通过webview来渲染展示的,如果系统没有webview,则是无法渲染展示html的

    • 1、2步其实一个原生应用调用html页面过程已经完成了,那么页面不光展示,有时候可能还需要交互,这里的话就需要写一些方法了,比如html界面的按钮需要调用系统原生的东西(比如:拍照,系统的文件,相册之类的)。

         原生端就负责维护html调用的接口,然后按照需要返回(原生端充当一个server的角色,html充当一个client角色)

    使用webview的好处?

    原生APP是将页面的布局设计,以及业务代码打包然后用户下载安装使用,而webview是通过加载html文件来进行页面的展示,当需要更新页面布局的或者业务逻辑变更时,如果是原生的APP就需要修改前端内容,升级打包,重新发布才可

    以使用最新的。而通过webview方式的页面则只需要修改html代码或者js文件(如果是从服务器端获取,只要新的文件部署完成),用户重新刷新就可以使用更新后的,无需通过下载安装的方式完成升级

    安卓系统内置浏览器,自带浏览器?

    内置浏览器和自带浏览器是一个概念?

    国内手机的自带浏览器不是chrome,主要是版权的原因,自带的浏览器都是手机厂商基于国内主流的几大浏览器自己定制,然后发布在自己手机系统版本中.不过国内几大浏览器厂商如QQ浏览器,UC浏览器、都是基于webkit引擎的

    iphone的自带浏览器是Safari,Safari浏览器的内核是webkit

    APP webview展示的页面和通过手机浏览器打开的页面?

    不管是ios还是安卓,自带浏览器底层都是基于webkit的,然后各自系统中均带有webview控件,也是基于webkit引擎,所以不管通过APP调用webview展示html页面还是通过在浏览器打开html页面,效果是一样的。

    Android中的webview函数 

    WebView.loadUrl("http://www.ltplayer.com");// 加载url,也可以执行js函数

    WebView.setWebViewClient(new SafeWebViewClient());// 设置 WebViewClient

    WebView.setWebChromeClient(new SafeWebChromeClient());// 设置 WebChromeClient

    WebView.onResume();

    WebView.resumeTimers();

    WebView.onPause();

    WebView.pauseTimers();

    WebView.stopLoading();// 停止当前加载

    WebView.clearMatches();

    WebView.canGoBack();

    WebView.clearSslPreferences();

    WebView.clearCache(true);方也会使用到。该方法接受一个参数,从命名即可看出作用。若设为false,则只清空内存里的资源缓存,而不清空磁盘里的。

    WebView.loadUrl("about:blank");

    WebView.removeAllViews();//

    WebView.destroy();// 生命周期销毁

    参考 

    WebView之基本使用

    app中的webview通识篇(上)

    webview的简单介绍

    app中的webview通识篇(上)

     

     

  • 相关阅读:
    经典sql面试题(学生表_课程表_成绩表_教师表)
    69道Spring面试题及答案
    Spring常见面试题
    Java基础面试题及答案(六)
    Java基础面试题及答案(五)
    maven工程,java代码加载resources下面资源文件的路径
    oracle的事务级别
    JMeter测试HBase
    JMeter测试clickhouse
    JMeter入门
  • 原文地址:https://www.cnblogs.com/kunmomo/p/11556146.html
Copyright © 2011-2022 走看看