关于UIWebView刷新问题

最近博主在做项目的时候,遇到了一个问题。就是用UIWebView调用API来刷新的时候,会把界面刷没了。这可愁死博主了,然后各种谷歌,结果可想而知。一个星期过去了,还是没什么头绪。只是得到了以下问题:

1.一刷新界面,在shouldStartLoadWithRequest方法里打印URL,第一次跳转URL是:www.et.com/#!/key,第二次跳转变成www.et.com/#!/。

2.然后在safari调试时,刷新会出现一个找不到css文件的警告。

3.web端的路由重定向代码去掉,就能刷新成功。

在多次与web端的童鞋沟通以后,了解到了他使用的是Vue来做路由跳转的(vue路由的使用)。这就让博主想到了,是不是被重定向了。然后web端的童鞋告诉博主,有一个url是没有做重定向跳转的,博主试了试,发现不是重定向问题。

最后在一次偶然的打断点中(博主是用safari来调试的),博主发现当webView刷新时,vue没有走beforeEach:(在路由切换开始时调用)方法 ,T_T 但是为什么不走beforeEach方法博主与web端的童鞋还没弄明白(因为放假了,web端的童鞋回家过年了,所以问题先留着。。。)

PS:现在楼主的备用解决方法是重新把webView再init一遍。

关于UIWebView刷新问题_第1张图片
safari调试界面

最后博主放弃了UIWebView,改用了WKWebView,WKWebView就没有刷新问题。想了解的点这里。

这个问题就是web端同学使用vue重定向时,在beforeEach方法里调用数据,再刷新数据,但是使用UIWebView调用API来刷新时,不会在走beforeEach这个方法,界面刷新时,没有数据而造成的,猜测可能是vue与内置浏览器的兼容问题.最后博主放弃了UIWebView ,改用WKWebView

你可能感兴趣的:(关于UIWebView刷新问题)