app开发快速理解——webview网页显示
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网页显示相关推荐
- 化妆品APP开发快速制作
化妆品APP开发,化妆品APP开发快速制作.伴随着移动互联快速发展趋势,许多实体领域都是在根据互联网进行转型发展,特别是在近些年女性市场的需求深受创业投资者们关心,因而许多借此机会衍化的消费行业也是备 ...
- 手机app开发可选技术——webview
选型标准 ·写代码的难易度 ·编译的难易度 ·上架和推广的难易度 ·小程序和原生应用的不同等方面 技术方案 WebView 入门知识 我们通常是使用浏览器浏览网页,你很清楚的知道你正在使用浏览器,要么 ...
- android webview网页显示不完整,【报Bug】webview页面内容显示不全
详细问题描述 更新到2.6.0之后,进入webview页面,嵌入的html页面无法完全显示,部分内容被遮挡 [内容] 重现步骤 [步骤] 进入webview页面 [结果] 内容无法完全显示,部分内容被 ...
- 快速android app开发,快速學會開發 Android App
快速學會開發Android App 作者:吳玉舒 / 臺灣大學計算機及資訊網路中心程式設計組幹事 智慧型手機發展迅速,其中以Android和iOS為主要的平台,根據 2012年6月Nielsen 的調 ...
- Android Studio App开发之下载管理器DownloadManager中显示、轮询下载进度、利用POST上传文件讲解及实战(附源码)
运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一.在通知栏显示下载进度 利用GET方式读取数据有很多缺点比如1:无法端点续传 一旦中途失败只能重新获取 2:不是真正意义上的下载操作 无法设置参 ...
- HTML5+app开发学习之快速入门篇
HTML5+app开发学习之快速入门篇 5+app开发概念理解相关 开发环境与支持 快速入门实战 5+app开发概念理解相关 见博文:学习跨平台移动应用开发必须理解的一些概念 开发环境与支持 开发环境 ...
- 短租APP开发定制快速搭建
短租APP开发,短租APP开发定制,短租APP开发快速搭建.近些年线下推广租赁领域深受用户和金融市场关心,尽管大家生活水平提升当然有工作能力选购自已喜欢产品,但有时节约资产也会给日常生活产生一定便捷, ...
- 生鲜配送APP软件开发快速制作
生鲜配送APP开发,生鲜配送APP开发快速搭建. 生鲜食品商品针对现在的人们而言一样是非常主要的日用品,对于此事,生鲜配送APP软件开发也应时而生,达到不一样用户针对生鲜配送APP软件开发交易层面的详 ...
- 混合 APP 开发(Hybrid App)
目录 混合 App Html5简介 UIWebView 和 WKWebView UIWebView 和 JS 交互 WKWebView 和 JS 交互 JS 调用 Native 相机 一. 混合 AP ...
最新文章
- 利用pmap查看进程的地址空间
- 数学建模学习笔记——插值算法
- 整合 Google 开源 C++ 代码
- 【项目管理】记第一次出差到客户现场推进项目验收感悟-后续1
- win7安装git客户端和简单配置
- SAP ABAP实用技巧介绍系列之Debug XSLT transformation
- Quick Cocos2dx 场景转换问题
- 阿里巴巴Java开发手册-使用JDK8的Opional类来防止出现NPE问题
- [译]用javascript实现一门编程语言-语言构想
- 存储路径_KUKA C4机器人通过KRC CONFIGURATEOR设置存储路径
- 你敢信?FBI 的190万条恐怖分子监控名单竟无密码保护且不慎遭暴露
- nginx实时生成缩略图到硬盘上
- 快捷键打开管理员cmd
- 解压缩软件:WinRAR V5.71
- Python数据分析之股票数据
- SAP 移动类型 与 账户 字段选择不一致
- L1,L2正则化理解-奥卡姆剃刀(Occam's razor)原理
- 威纶通屏幕(HMI)开发进阶教程三:数据地址格式的讲解
- R----stringr包介绍学习
- 微海快递单号批量查询 v1.0