原文

1. 打开网页时不调用系统浏览器, 而是在本WebView中显示:

mWebView.setWebViewClient(new WebViewClient(){       @Override       public boolean shouldOverrideUrlLoading(WebView view, String url) {           view.loadUrl(url);           return true;       }   });

2. 通过java代码调用javascript

WebSettings webSettings =   mWebView .getSettings();        webSettings.setJavaScriptEnabled(true);  mWebView.addJavascriptInterface(new Object() {                    public void clickOnAndroid() {                        mHandler.post(new Runnable() {                            public void run() {                                webview.loadUrl("javascript:wave()");                            }                        });                    }                }, "demo"); 

3. 按返回键时, 不退出程序而是返回上一浏览页面:

public boolean onKeyDown(int keyCode, KeyEvent event) {                if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {                    mWebView.goBack();                    return true;                }                return super.onKeyDown(keyCode, event);            }

4. 打开页面时, 自适应屏幕:

WebSettings webSettings =   mWebView .getSettings();        webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放 webSettings.setLoadWithOverviewMode(true);

5. 便页面支持缩放:

WebSettings webSettings =   mWebView .getSettings();        webSettings.setJavaScriptEnabled(true);   webSettings.setBuiltInZoomControls(true); webSettings.setSupportZoom(true);

6.如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。

webview.requestFocusFromTouch();

7.WebView 加载界面主要调用三个方法:LoadUrl、LoadData、LoadDataWithBaseURL.

1、LoadUrl            直接加载网页、图片并显示.(本地或是网络上的网页、图片、gif)   2、LoadData           显示文字与图片内容 (模拟器1.5、1.6)   3、LoadDataWithBase  显示文字与图片内容(支持多个模拟器版本) 

8.WebSettings 的常用方法介绍

setJavaScriptEnabled(true);  //支持js
setPluginsEnabled(true);  //支持插件 
setUseWideViewPort(false);  //将图片调整到适合webview的大小 
setSupportZoom(true);  //支持缩放 
setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支持内容重新布局  
supportMultipleWindows();  //多窗口 
setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);  //关闭webview中缓存 
setAllowFileAccess(true);  //设置可以访问文件 
setNeedInitialFocus(true); //当webview调用requestFocus时为webview设置节点 webview webSettings.setBuiltInZoomControls(true); //设置支持缩放 
setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口  setLoadWithOverviewMode(true); // 缩放至屏幕的大小
setLoadsImagesAutomatically(true);  //支持自动加载图片

9.WebViewClient 的方法全解

doUpdateVisitedHistory(WebView view, String url, boolean isReload)  //(更新历史记录)   onFormResubmission(WebView view, Message dontResend, Message resend) //(应用程序重新请求网页数据)   onLoadResource(WebView view, String url) // 在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。   onPageStarted(WebView view, String url, Bitmap favicon) //这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告诉用户程序在等待网络响应。 
onPageFinished(WebView view, String url) //在页面加载结束时调用。同样道理,我们知道一个页面载入完成,于是我们可以关闭loading 条,切换程序动作。  onReceivedError(WebView view, int errorCode, String description, String failingUrl)// (报告错误信息)  onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host,String realm)//(获取返回信息授权请求)    onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) //重写此方法可以让webview处理https请求。   onScaleChanged(WebView view, float oldScale, float newScale) // (WebView发生改变时调用)  onUnhandledKeyEvent(WebView view, KeyEvent event) //(Key事件未被加载时调用)  shouldOverrideKeyEvent(WebView view, KeyEvent event)//重写此方法才能够处理在浏览器中的按键事件。  shouldOverrideUrlLoading(WebView view, String url)  //在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。

webview 详解的更多相关文章

  1. 最全面的Android Webview详解

    转自:最全面的Android Webview详解 前言 现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图  那么这种该如何实现呢?其实这是 ...

  2. android WebView详解,常见漏洞详解和安全源码

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  转载请注明出处:http://blog.csdn.net/se ...

  3. Anaroid WebView详解大全

    资源描述: 1.android提供了webView控件专门用来浏览网页.然后在程序中装载webView控件,设置属性,比如:颜色.字体.要访问的网址等.通过loadUrl方法设置当前webView需要 ...

  4. 史上最全webview详解

    本文来自:http://www.jianshu.com/users/320f9e8f7fc9/latest_articles WebView在现在的项目中使用的频率应该还是非常高的. 我个人总觉得HT ...

  5. Android之webview详解

    文章大纲 一.webview基本介绍1.什么是webview2.为什么要使用webview3.webview基本操作 二.webview高级使用1.WebView状态2.资源加载3.WebView加载 ...

  6. 最全面的 Webview 详解

    前言 现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 那么这种该如何实现呢?其实这是Android里一个叫WebView的组件实现的.今 ...

  7. Android WebView 详解

    相关API 相关类介绍 WebResourceRequest 添加于API21,封装了一个Web资源的请求信息,包含:请求地址,请求方法,请求头,是否主框架,是否用户点击,是否重定向 WebResou ...

  8. 【转】Android:最全面的 Webview 详解

    原文: https://blog.csdn.net/carson_ho/article/details/52693322 前言 现在很多App里都内置了Web网页(Hyprid App),比如说很多电 ...

  9. 网页程序迁移至微信小程序web-view详解

    小程序现在越来越流行,但是公司的很多项目都是用网页写的,小程序语法不兼容原生网页,使得旧有项目迁移至小程序代价很高: 小程序之前开放了webview功能,可以说是网页应用的一大福音了,但是微信的web ...

随机推荐

  1. ES6学习笔记之变量声明let,const

    最近用淘宝的weex做了个项目,最近稍微闲下来了.正好很久没有接触RN了,所以趁这个机会系统的学习一下ES6的相关知识. 孔子说:没有对比就没有伤害.所以我们要拿ES6和ES5好好对比的学习.这样才能 ...

  2. Young Maids

    E - Young Maids Time limit : 2sec / Memory limit : 256MB Score : 800 points Problem Statement Let N  ...

  3. Grafana---graph

    主面板简单的命名为Graph.它提供了一组非常丰富的图形选项. 单击面板的标题将显示一个菜单.edit选项为面板打开了额外的配置选项. 一.General general允许定制面板的外观和菜单选项. ...

  4. hctf2016 fheap学习(FreeBuf发表的官方解法)

    目录 如何在二次释放前修改函数指针 修改函数指针流程 如何获得进程的加载基址 puts函数的调用 如何获取system函数地址 说一下用DlyELF函数 如何调用system函数 ROP需要的栈布局 ...

  5. JavaScript数据结构与算法-链表练习

    链表的实现 一. 单向链表 // Node类 function Node (element) { this.element = element; this.next = null; } // Link ...

  6. 【转】mysql利用init-connect增加访问审计功能

    mysql的连接首先都是要通过init-connect初始化,然后连接到实例. 我们利用这一点,通过在init-connect的时候记录下用户的thread_id,用户名和用户地址实现db的访问审计功 ...

  7. Python3.6全栈开发实例[024]

    24.文件a1.txt内容(注意每行中的空格是不一样的,需要对空格进行处理)序号 部门   人数   平均年龄           备注 1 python   30   26   单身狗 2 Linu ...

  8. Java输入输出重定向代码

    try {   BufferedInputStream in = new BufferedInputStream(new FileInputStream("input.txt")) ...

  9. 启动hadoop集群

    1.配置core-site.xml(每个节点上都要配置) 路径: /usr/local/hadoop-2.7.3/etc/hadoop/core-site.xml 配置项1: name: fs.def ...

  10. 通过存储过程运行通过DBLINK的查询语句失败-单个语句成功--ORA-00604

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/q947817003/article/details/24419459 客户遇到个问题,描写叙述例如以 ...