如何创建WebView


 

如何创建WebView:

 

   
1、添加权限:AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web
page not available错误。

   
2、在要Activity中生成一个WebView组件:WebView webView = new WebView(this);

   
3、设置WebView基本信息:

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

         
webview.getSettings().setJavaScriptEnabled(true); 

         
触摸焦点起作用

         
requestFocus();//如果不设置,则在点击网页文本输入框时,不能弹出软键盘及不响应其他的一些事件。

         
取消滚动条

         
this.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);

   
4、设置WevView要显示的网页:

        
 互联网用:webView.loadUrl("http://www.google.com");

         
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 
本地文件存放在:assets文件中

   
5、如果希望点击链接由自己处理,而不是新开Android的系统browser中响应该链接。

         
给WebView添加一个事件监听对象(WebViewClient)     

       

         
并重写其中的一些方法

               
shouldOverrideUrlLoading:对网页中超链接按钮的响应。

                                         
当按下某个连接时WebViewClient会调用这个方法,并传递参数:按下的url

               
onLoadResource  

               
onPageStart 

               
onPageFinish 

               
onReceiveError

               
onReceivedHttpAuthRequest

        

 

   
6、如果用webview点链接看了很多页以后,如果不做任何处理,点击系统“Back”键,整个浏览器会调用finish()而结束自身,如果希望浏览的网页回退而不是退出浏览器,需要在当前Activity中处理并消费掉该Back事件。

      
覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法。

    public
boolean onKeyDown(int keyCoder,KeyEvent event){

                       
if(webView.canGoBack() && keyCoder
== KeyEvent.KEYCODE_BACK){

                             
webview.goBack();  
//goBack()表示返回webView的上一页面

 

 

                       
         return
true;

                          
}

                       
return false;

                  
}

 

  WebView相关问题注意:

 

Android的webView很强大,其实就是一个浏览器,你可以把它嵌入到你想要的位置,我这里遇到两个问题,就是怎么知道网页的加载进度和加载网页时,

点击网页里面的链接还是在当前的webview里跳转,不想跳到浏览器那边,解决办法如下:

 

//此方法可以处理webview 在加载时和加载完成时一些操作

webView.setWebChromeClient(new WebChromeClient(){

  @Override

  public void onProgressChanged(WebView view,
int newProgress) {

   
if(newProgress==100){                       
// 这里是设置activity的标题, 也可以根据自己的需求做一些其他的操作

         
title.setText("加载完成");

    
}else{

    
title.setText("加载中.......");

 

     
}

    }

});

 

 

webView.setWebViewClient(new WebViewClient(){

  @Override

    public
boolean shouldOverrideUrlLoading(WebView view, String url)
{  //重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边

      
view.loadUrl(url);

      
return true;

  }

 

       
@Override

public void onReceivedSslError(WebView view, SslErrorHandler
handler, android.net.http.SslError error) { //
重写此方法可以让webview处理https请求

handler.proceed();

}

 

});

时间: 2024-10-03 03:54:18

如何创建WebView的相关文章

AgentWeb是基于Android WebView一个功能完善小型浏览器库

本文讲的是AgentWeb是基于Android WebView一个功能完善小型浏览器库,AgentWeb是一个高度封装的 Android WebView ,简单易用 , 带有进度条 . 支持文件上传 . 下载 . 简化 Javascript 通信 . 链式调用 . 加强 Web 安全的库 .让你几行代码集成一个小型浏览器在你的应用 . App 下载体验 前言 WebView 可谓是每个应用必备的一个控件了 ,但是谈起它的使用 ,让很多人都不是那么喜欢它 ,比如说每个 Web 页面都需要各种一大推

IOS WebView控件详解

概述 WebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView:UIWebView和WKWebView,UIWebView是iOS2之后开始使用,WKWebView是在iOS8开始使用,WKWebView将逐步取代笨重的UIWebView. 相比UIWebView,WKWebView做了如下优化: WKWebView更多的支持HTML5的特性 WKWebView更快,占用内存可能只有UIWebView的1/3 ~ 1/4 WKWebView高达60fps的滚动刷新率和丰富的内置手

Android WebView启动Chromium渲染引擎的过程分析

 首先感谢罗升阳的分享,原文链接http://blog.csdn.net/Luoshengyang/article/details/53237189   Android WebView加载了Chromium动态库之后,就可以启动Chromium渲染引擎了.Chromium渲染引擎由Browser.Render和GPU三端组成.其中,Browser端负责将网页UI合成在屏幕上,Render端负责加载网页的URL和渲染网页的UI,GPU端负责执行Browser端和Render端请求的GPU命令.本文

Android开发笔记之探秘WebView

概述:            一个显示网页的视图.这个类是你可以滚动自己的Web浏览器或在你的Activity中简单地显示一些在线内容的基础.它使用了WebKit渲染引擎来显示网页,包括向前和向后导航的方法(通过历史记录),放大和缩小,执行文本搜索等. 需要注意的是:为了让你的应用能够使用WebView访问互联网和加载网页,你必须添加Internet的权限在Android Manifest文件中: <uses-permission android:name="android.permiss

Android开发中使用WebView控件浏览网页的方法详解

本文实例讲述了Android开发中使用WebView控件浏览网页的方法.分享给大家供大家参考,具体如下: 项目中遇到数学展示问题,常规的Textview显示处理不了数学公式,利用图片生成对服务器又产生较大压力,经过查询,可以通过webview加载JS实现.IOS同样的方法也可实现,但JS渲染效率远高于安卓.对Webview做下总结. 1.WebView 在使用WebView控件时,首先需要在xml布局文件中定义一个WebView控件,定义的方法如下: <WebView android:id=&quo

极致的 Hybrid:航旅离线包再加速!

去年(2015)四月份,我在 QCon 北京大会上分享了阿里旅行 Hybrid 实战经验,作为航旅在 Hybrid 方向探索的一个收尾.当下集团内的重量级 App(手淘.钱包等)在 H5 容器建设上成长迅速,形成了宏大的技术体系,到去年双十一,H5 容器所承载的流量已经远远超过了有限的 Native Page.就航旅来说,H5 承载的流量是 App 的至少四倍.无疑,处在应用层的 Web 技术栈,以其独有的运行时环境(WebKit).普适的技术标准(W3C & ES 5.6)以及极具优势的研发灵

iOS Safari阅读模式研究

这是一篇在2013年准备的资料,现在分享出来,供有需要的同学参考. 要点 (1) 阅读模式的检测 在frame加载完成后,触发一个timer来检测是否可以使用阅读模式.检测的方式是使用JavaScriptCore framework的接口执行一段JS脚本,然后取JS中属性值来判断是否可以进入阅读模式.如果当前页面可以进入阅读模式,将在地址栏显示阅读模式切换按钮. (2) 阅读模式的执行 当用户点击阅读模式切换按钮时,会依次执行: i. 执行阅读模式检查脚本,判断目前是否可以进入阅读模式. ii.

VasSonic源码解析

H5很重要,H5很重要,H5很重要,重要的事情要说三遍.VasSonic是腾讯开源的解决H5首屏渲染痛点的开源项目,本文通过解读代码来学习WebView的优化思路. H5的优劣 H5的优势很明显,跨平台.迭代快.开发体验好.H5的劣势同样明显,加载慢,用户体验差.业内大牛想尽各种方法来弥补H5的劣势,初级使用缓存.预加载等常用方案,高级如Hybrid.ReactNative.Weex等H5的进阶解决方案.VasSonic专注于H5的秒开,使用的也是我们常见的性能优化方案.本文尝试了解VasSon

Android中导致内存泄漏的竟然是它----Dialog

一. 内存泄漏的 Bug 猛增 最近在 App 进行 mokey 测试的时候检测到一些内存泄漏问题.在前天的测试中,楼主一瞬间收到了4个这样的 Bug 单,瞬间心理无比纠结,真有千万只羊驼向我奔来. 登录页面出现内存泄漏??!!楼主的代码是如此的完美而无懈可击,这么可能出现这么多泄漏的问题? 插播什么是 Activity 泄漏:Android 中 Activity 代表一个页面,拥有一段生命周期,生命周期结束后,Activity 对象应当在之后某个合适的时机被 VM 回收内存.出现了泄漏就意味着