如果webviewActivity一打开就加载的那个页面地址有问题

如果webviewActivity一打开就加载的那个页面地址有问题

wv.loadUrl("http://192.168.56.1:8080/index2.html");

我把进入WebViewActivity后,就加载的页面设置成一个不存在的页面,那么 onReceivedError 并不会执行

只有在index.html页面中内部发生错误时,才会执行

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

11回答
提问者 森林之王2 2019-07-31 19:27:57

找到了 ,如果是404的话


重载onReceivedHttpError方法

好帮手慕雪 2019-07-31 16:15:11

明白你的意思了,这是两种错误,例如此问题的正确地址是http://class.imooc.com/course/qadetail/139390,那么你写成了 http://class.imooc2.com/course/qadetail/139390,它会

http://img1.sycdn.imooc.com//climg/5d414d710001581504060380.jpg

而如果写成 http://class.imooc.com/course/qadetail/1393901

http://img1.sycdn.imooc.com//climg/5d414d970001f50504470461.jpg

这是两个错误的形式。而我们的http://img1.sycdn.imooc.com//climg/5d414e04000183f413830637.jpg

onReceivedError 的作用是 向主机应用程序报告错误。 这些错误是不可恢复的(即主要资源不可用)。 只有在主要资源不可用的时候 才会进入 error , 但是 404 不是主要资源不可用 。

提问者 森林之王2 2019-07-31 11:20:35

老师,还是依然有问题,哈,就是下面我重新描述的1 ,2, 3

另外,我还发现在打开的地址是

wv.loadUrl(" 是对
//没有index2.html
I/chatty: uid=10095(com.example.webview) RenderThread identical 2 lines  
这个渲染线程输出几下 就不在输出 了,意思是不是就是停止加载了


  • 提问者 森林之王2 #1
    上面没有保存示完整 mWebView.loadUrl("http://192.168.56.1:8080/index2.html"); //192.168.56.1:8080 是存在的网址,没有index2.html
    2019-07-31 11:22:33
提问者 森林之王2 2019-07-31 11:09:51
提问者 森林之王2 2019-07-31 10:53:54

哦,那个回调方法中调转到百度是需要网络的

提问者 森林之王2 2019-07-31 10:46:01

老师,我的问题依然存在,我再说一下我的问题

  1. 能访问的正确网址

mWebView.loadUrl("http://192.168.56.1:8080/index.html");

2.这种错误的网址能回调onReceivedError

mWebView.loadUrl("
mWebView.loadUrl("http://192.168.56.2:8080/index2.html"); //index2.html也是不存的
//意思 是只要192.168.56.2 不对就能正确回调  onReceivedError 方法

3.这种错误的网址不能回调onReceivedError

mWebView.loadUrl("http://192.168.56.1:8080/index2.html"); //index2.html是不存的
// 如果前面的192.168.56.1:8080 是存在,对的,onReceivedError方法是不会被回调的


提问者 森林之王2 2019-07-31 10:38:53

我想这个不是网速的问题,我调用是本机上的网站

http://img1.sycdn.imooc.com//climg/5d40ff190001f65613540767.jpg


  • 提问者 森林之王2 #1
    这个地方慕课网做的不太好,可以重复提交
    2019-07-31 10:40:29
提问者 森林之王2 2019-07-31 10:38:38

我想这个不是网速的问题,我调用是本机上的网站

http://img1.sycdn.imooc.com//climg/5d40ff190001f65613540767.jpg


提问者 森林之王2 2019-07-31 08:37:25

要是我把加载的网址中的ip最后一位改成2,这是一个不存在的,后面的网页依然不变

mWebView.loadUrl("http://192.168.56.2:8080/index2.html");

运行测试,等上个2分钟,在这期间,控制台一直有打印输出:

I/chatty: uid=10096(com.sunday.webviewdeom) RenderThread identical 6 lines
E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5


大约2分钟后,回调了onReceivedError方法,打开了百度
控制台输出如下:

E/WebViewActivity: webview-》onReceivedError : 
加载了url:http://192.168.56.2:8080/index2.html - 
错误描述:net::ERR_CONNECTION_REFUSED - 错误代码:-6
E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
I/chatty: uid=10096(com.sunday.webviewdeom) RenderThread identical 4 lines
E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
D/EGL_emulation: eglMakeCurrent: 0xe7a07880: ver 2 0 (tinfo 0xd187e7e0)
I/chromium:
 [INFO:CONSOLE(2)] "Mixed Content: The page at 
'https://m.baidu.com/?from=844b&vit=fps' was loaded over HTTPS, but 
requested an insecure image 
'http://static.open.baidu.com/media/ch1/png/wise-bg.png'. This request 
has been blocked; the content must be served over HTTPS.", source: 
https://m.baidu.com/?from=844b&vit=fps


  • 嗯, 这是网络速度的问题。有时候你得多等一会
    2019-07-31 10:06:18
好帮手慕雪 2019-07-30 18:55:05

http://img1.sycdn.imooc.com//climg/5d4021b3000199bd11440366.jpg

肯定会执行

http://img1.sycdn.imooc.com//climg/5d4021c500017f2b08290265.jpg

的,亲测没有问题,就连10.0都是没有问题的。你可以再试试。祝:学习愉快

  • 提问者 森林之王2 #1
    老师,我按照你的也测试了,像你上面一样加载assets资源文件中的如果写个不存在的网页文件名,它是会执行onReceivedError 回调方法,有log输出,也能跳转到百度 但是,我又测试了一下加载nodejs服务上的网络网页, mWebView.loadUrl("http://192.168.56.1:8080/index2.html"); 依然是无法执行onReceivedError 回调方法,就没有log输出 我测试时,这回在老师发的源码上测试的
    2019-07-31 08:25:59
提问者 森林之王2 2019-07-30 08:56:23

我也试了,如果是ip有错,会跳到error.html,但是把ip后面的页面改成不存在的,就不会跳到error.html了

这有点,难懂

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.Android 网络操作与流行框架
  • 参与学习           人
  • 提交作业       220    份
  • 解答问题       1800    个

本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师