安卓开发复习笔记——WebView组件.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
安卓开发复习笔记——WebView组件

/lichenwei/p/3959345.html安卓开发复习笔记——WebView组件1、什么是WebView??WebView(网络视图)能加载显示网页,可以将其视为一个浏览器,它使用了WebKit渲染引擎加载显示网页。?废话不多说,直接上代码?1、需要在xml布局文件中声明WebView组件1 WebView 2 android:id=@+id/webview3 android:layout_width=fill_parent4 android:layout_height=fill_parent5 /?2、在Activity中实例化WebView,并且可通过loadUrl(url)方法打开指定url资源1 private WebView webView;2 private String url = ;3 webView = (WebView) findViewById(R.id.webview);// 获取控件4 webView.loadUrl(url);// 载入指定url(调用系统自带浏览器)这里的url可以是网络上的资源,也可以是本地文件例如:网络上的资源:webView.loadUrl();本地文件:webView.loadUrl(file:///android_asset/XX.html); 本地文件存放在:assets 文件中?用这种方式打开的资源是依赖于系统自带的浏览器,而不是WebView组件,若想用自身WebView组件去实现,需要我们去调用setWebViewClient()方法在实现类中需要去复写一个shouldOverrideUrlLoading()方法,具体看下面代码注释 1 webView.setWebViewClient(new WebViewClient() { 2 /** 3 * 重写shouldOverrideUrlLoading,返回值若为true将用webview,false则是系统自身浏览器 4 */ 5 @Override 6 public boolean shouldOverrideUrlLoading(WebView view, String url) { 7 view.loadUrl(url); 8 return true; 9 }10 });这样子,我们可以实现不依靠系统自带浏览器打开我们的url资源,但这里会出现一个问题,只要我们一点手机上的返回键,整个程序就直接退出了。我们想要的应该是和浏览器一样的效果,按下返回键应该还是向后退一步,回到之前浏览的网页,而不是直接退出程序。解决方法,我们只需要去监听物理返回键并做出对应的逻辑出来就行 1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) {// keyCode代表按键的数字标示符 3 if (keyCode == KeyEvent.KEYCODE_BACK) { 4 if (webView.canGoBack()) { 5 webView.goBack(); 6 return true; 7 } else { 8 System.exit(0); 9 }10 }11 12 return super.onKeyDown(keyCode, event);13 }3、由于不是用Intent去调用系统组件,所以我们需要对程序进行权限的允许,在AndroidManifest.xml里对程序开放Inter权限1 uses-permission android:name=android.permission.INTERNET/以上就是基本的WebView使用方法,当然WebView还有很多属性可以去设置,只要我们去实例化出webSettings类的对象,就可以对它为所欲为了例如:1 WebSettings webSettings = webView.getSettings();// 获取配置信息2 webSettings.setJavaScriptEnabled(true);// 是否允许加载js文件3 webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);// 打开缓存?到这里有些朋友可能会问,这样做出的效果,好像感觉打开url资源的时候有点卡顿,很不舒服的一种感觉我们可以适当添加点友好型的交互,比如打开网页时有个进度条加载等,这里额外说下关于WebViewClient和WebChromeClient两个类(此处摘录于《程序之路》)WebViewClient主要帮助WebView处理各种通知、请求事件的,比如:onLoadResourceonPageStart(

文档评论(0)

zhengshumian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档