WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用。

webview有两个方法:setWebChromeClient 和 setWebClient

setWebClient:主要处理解析,渲染网页等浏览器做的事情

setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等

WebViewClient就是帮助WebView处理各种通知、请求事件的。

在AndroidManifest.xml设置访问网络权限:

<uses-permission android:name="android.permission.INTERNET"/>

控件:

<WebView android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/webView"/>

用途一:加载本地/Web资源

example.html 存放在assets文件夹内

调用WebView的loadUrl()方法,

加载本地资源

webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/example.html");

加载web资源:

webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://baidu.com");

用途二:在程序内打开网页

创建一个自己的WebViewClient,通过setWebViewClient关联

package com.example.testopen;import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;public class MainActivity extends Activity {
private WebView webView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test);             init();}private void init(){webView = (WebView) findViewById(R.id.webView);//WebView加载web资源webView.loadUrl("http://baidu.com");//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开webView.setWebViewClient(new WebViewClient(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {// TODO Auto-generated method stub//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器view.loadUrl(url);return true;}});}}

用途三:

如果访问的页面中有Javascript,则webview必须设置支持Javascript

//启用支持javascript
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);

用途四:

如果希望浏览的网页后退而不是退出浏览器,需要WebView覆盖URL加载,让它自动生成历史访问记录,那样就可以通过前进或后退访问已访问过的站点。

//改写物理按键——返回的逻辑@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif(keyCode==KeyEvent.KEYCODE_BACK){if(webView.canGoBack()){webView.goBack();//返回上一页面return true;}else{System.exit(0);//退出程序}}return super.onKeyDown(keyCode, event);}

用途五:判断页面加载过程

    webView.setWebChromeClient(new WebChromeClient() {@Overridepublic void onProgressChanged(WebView view, int newProgress) {// TODO Auto-generated method stubif (newProgress == 100) {// 网页加载完成} else {// 加载中}}});

用途六:缓存的使用

优先使用缓存

webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

不使用缓存:

webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

转载:https://www.cnblogs.com/tinyphp/p/3858997.html

app开发快速理解——webview网页显示相关推荐

  1. 化妆品APP开发快速制作

    化妆品APP开发,化妆品APP开发快速制作.伴随着移动互联快速发展趋势,许多实体领域都是在根据互联网进行转型发展,特别是在近些年女性市场的需求深受创业投资者们关心,因而许多借此机会衍化的消费行业也是备 ...

  2. 手机app开发可选技术——webview

    选型标准 ·写代码的难易度 ·编译的难易度 ·上架和推广的难易度 ·小程序和原生应用的不同等方面 技术方案 WebView 入门知识 我们通常是使用浏览器浏览网页,你很清楚的知道你正在使用浏览器,要么 ...

  3. android webview网页显示不完整,【报Bug】webview页面内容显示不全

    详细问题描述 更新到2.6.0之后,进入webview页面,嵌入的html页面无法完全显示,部分内容被遮挡 [内容] 重现步骤 [步骤] 进入webview页面 [结果] 内容无法完全显示,部分内容被 ...

  4. 快速android app开发,快速學會開發 Android App

    快速學會開發Android App 作者:吳玉舒 / 臺灣大學計算機及資訊網路中心程式設計組幹事 智慧型手機發展迅速,其中以Android和iOS為主要的平台,根據 2012年6月Nielsen 的調 ...

  5. Android Studio App开发之下载管理器DownloadManager中显示、轮询下载进度、利用POST上传文件讲解及实战(附源码)

    运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一.在通知栏显示下载进度 利用GET方式读取数据有很多缺点比如1:无法端点续传 一旦中途失败只能重新获取 2:不是真正意义上的下载操作 无法设置参 ...

  6. HTML5+app开发学习之快速入门篇

    HTML5+app开发学习之快速入门篇 5+app开发概念理解相关 开发环境与支持 快速入门实战 5+app开发概念理解相关 见博文:学习跨平台移动应用开发必须理解的一些概念 开发环境与支持 开发环境 ...

  7. 短租APP开发定制快速搭建

    短租APP开发,短租APP开发定制,短租APP开发快速搭建.近些年线下推广租赁领域深受用户和金融市场关心,尽管大家生活水平提升当然有工作能力选购自已喜欢产品,但有时节约资产也会给日常生活产生一定便捷, ...

  8. 生鲜配送APP软件开发快速制作

    生鲜配送APP开发,生鲜配送APP开发快速搭建. 生鲜食品商品针对现在的人们而言一样是非常主要的日用品,对于此事,生鲜配送APP软件开发也应时而生,达到不一样用户针对生鲜配送APP软件开发交易层面的详 ...

  9. 混合 APP 开发(Hybrid App)

    目录 混合 App Html5简介 UIWebView 和 WKWebView UIWebView 和 JS 交互 WKWebView 和 JS 交互 JS 调用 Native 相机 一. 混合 AP ...

最新文章

  1. 利用pmap查看进程的地址空间
  2. 数学建模学习笔记——插值算法
  3. 整合 Google 开源 C++ 代码
  4. 【项目管理】记第一次出差到客户现场推进项目验收感悟-后续1
  5. win7安装git客户端和简单配置
  6. SAP ABAP实用技巧介绍系列之Debug XSLT transformation
  7. Quick Cocos2dx 场景转换问题
  8. 阿里巴巴Java开发手册-使用JDK8的Opional类来防止出现NPE问题
  9. [译]用javascript实现一门编程语言-语言构想
  10. 存储路径_KUKA C4机器人通过KRC CONFIGURATEOR设置存储路径
  11. 你敢信?FBI 的190万条恐怖分子监控名单竟无密码保护且不慎遭暴露
  12. nginx实时生成缩略图到硬盘上
  13. 快捷键打开管理员cmd
  14. 解压缩软件:WinRAR V5.71
  15. Python数据分析之股票数据
  16. SAP 移动类型 与 账户 字段选择不一致
  17. L1,L2正则化理解-奥卡姆剃刀(Occam's razor)原理
  18. 威纶通屏幕(HMI)开发进阶教程三:数据地址格式的讲解
  19. R----stringr包介绍学习
  20. 微海快递单号批量查询 v1.0

热门文章

  1. 小米系列手机 开发者版本 之 USB安装出现当前设备已被临时限制
  2. Linux 添加一块新硬盘
  3. HTML经典绝对定位图片
  4. c语言 快排,C语言 快排函数
  5. 技术人员谈管理之项目风险规避
  6. 反射系数和透射系数随入射角的变化曲线
  7. c++游戏编程初步(超简单)教学
  8. bcd转ascii码 流程图_BCD码转换成ASCII值
  9. oracle快速复制一个表
  10. java 查看堆内存_查看java内存情况的几个常用命令