WebView的postUrl 返回非html页面(json)问题

在开发app时候增加了一个商城页,自然是用h5继承比较方便,但是在用WebView 加载商城页面时候,总是会有首次下载app登陆加载异常,返回的是json字符串。用在线接口测试工具测试了一下,确实是,如下图这样显示,

postUrl返回非html页面而是json

这个研究了半天,各种方法测试了,均会有首次加载 出现这个玩意。

于是想到了,加载后,sleep 0.5秒 ,然后重新再次加载一次,,等于做了两次加载操作,这个在Activity中是没有问题的,可以解决问题,但是如果商城页面在 viewPage中呢,这个非activity时候就无法解决了。必须要viewPage 页面关闭再次重新进来才能正常显示商城页面,于是,思前想后,想了想为什么首次加载返回的就必须是json,第二次重新加载就正常了呢?果断打印比较了一下发现,原来首次加载后就生成了一个cookie,浏览器记住了cookie再次请求时候就返回了正常html页面(这个是选用的商城后台的坑。用的开源的商城后台,没办法总不能自己写一个商城后台),到这儿知道问题了解决起来就方便多了!在WebView的 setWebViewClient方法中重写onPageFinished()方法,如下:

onPageFinished

同步cookie的方法为:

synCookies

首次加载 完成后,将获取的cookie添加到url中,然后重新再次加载一次postUrl请求,这样就解决了商城首次进入总是异常的问题。

你可能感兴趣的:(WebView的postUrl 返回非html页面(json)问题)