开发WebView中的细节处理--开发V5浏览器过程总结一

news/2024/2/29 3:38:31

 

 

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();
}

});


https://www.jiucaihua.cn/news/show-4421718.html

相关文章

自动发片q机器人_悦瑞三维携手惠普 深度探讨3D打印助力机器人工装夹具发展契机...

​​2020年4月15日14:00,惠普联合悦瑞三维举办的“深度探讨3D打印助力机器人及工装夹具发展契机”线上研讨会准时开讲。来自惠普3D打印的应用工程师陆亦涵、悦瑞三维设备技术部经理官承昊、以及终端客户惠普大幅面打印机中国产线主管施兆勇通过他们的演讲分享&#…

html5 图片反弹,使用cubic-bezier()创建带有反弹特效的CSS动画

你知道吗,那些使用CSS transform属性添加进HTML的元素是可以实现动画效果的。我们可以使用transition属性和keyframe动画来实现这个效果,但是 更炫酷的是,我们可以使用cubic-bezier()这个timing function,给动画添加一些反弹特效&…

2021萧山三中高考成绩查询,萧山2018高考创新高!萧中735人,二中253人,三中696人......

原标题:萧山2018高考创新高!萧中735人,二中253人,三中696人...昨天和今天,对于萧山很多家庭来说,真的是太紧张了!昨天,高考成绩发布!而今天上午,萧山中考成绩…

mysql挂载数据卷_NO.A.0003.mysql/mariadb10.2.35/二进制安装/配置

一、mysql/mariadb/make二进制包下载:地址:https://downloads.mariadb.org/mariadb/10.2.35/ 选择你要安装的版本;该地址有三种数据格式的文件:Source——源码Binaries——二进制Packages——rpm包(针对centos,Redha…

html更改链接颜色,HTML超链接的颜色怎么改

1回答2021-05-06浏览:3分类:其他问题回答:CSS2回答2020-11-27浏览:32分类:办公入门回答:Word2013文档里的超链接字体颜色更改方法:选超链接内容:格式栏——格式窗格(在“样式”左侧两…

html5 字体嵌入,网页中嵌入特殊字体(@font-face)

这里主要用到font-face这个语法。假如我要使用一个open-sans字体,点击ADD FONTS按钮,并勾选Agreement,如下图打开转换字体的网站http://www.fontsquirrel.com/tools/webfont-generator上传后,会自动生成所需eot,svg&am…

卡方分布_卡方让复旦432更卷了“卡四”押题卷真有这么神?

何为押题?押题不是讲过一遍而已。押题是反反复复强调,一遍又一遍重复,并且在模考卷中直接点明。卡方训练营四套模考卷的概率论前六题押中五题,后六题在基础和定向的课程中也都有涉及。对于今年复旦真题卡方训练营实现了难题全面覆…

韩剧机器人题材的_15部最好看的韩剧,有悬疑律政浪漫爱情青春,你都追了几部?...

给大家整理几部今年最好看的韩剧,有悬疑、律政、青春、浪漫爱情喜剧,每一部看了都不会失望!你都追了哪几部?(排序不分先后)NO.1《秘密森林》豆瓣评分:9.2主演:曹承佑、裴斗娜剧情:讲述失去情感的…

闲置自动锁定计算机,Foxmail邮箱怎么设置闲置时间自动锁定?

一直使用的Foxmail客户端来接收邮件,是因为Foxmail客户端是连带邮箱账号和邮箱设置一起保存的,也就是重新安装系统后,进入Foxmail文件目录,打开Foxmail.exe文件就能使用的了,不用像OUTLOOK那样需要重新设置。现在分享一…

乐观锁实现接口幂等性_什么是幂等性,如何实现,以及乐观锁在项目中的实际用法...

什么是幂等性?对于同一笔业务操作,不管调用多少次,得到的结果都是一样的。普通方式 只适合单机jvm加锁方式 Lock只能在一个jvm中起效,如果多个请求都被同一套系统处理,上面这种使用Lock的方式是没有问题的,…
最新文章