ios webview 相关

使用ios ,通过oc 使webview加载页面相关操作,遇到了如下两个问题。解决过程略有心酸,记录如下:

  1. 带登录状态(cookie)请求webview,cookie含有httponly标记
  2. 请求url由url变为url#时,webview的异常表现

cookie httponly flag

带cookie请求webview 可参考这篇文章《 IOS 网络请求中设置cookie》

那么问题来了:NSHTTPCookie 不支持httponly标记,仅有一个只读属性HTTPOnly。而为了防止xss,我们需要对cookie进行httponly标记,如何实现?

load url with #

系统一般会实现webview的delegate:
webView:shouldStartLoadWithRequest:navigationType: 、webViewDidFinishLoad:

但是发现比如页面有js实现了层级的变化,但是会将url增加#时,即由:http://www.xiaoxiaozi.com/index.php 变成 http://www.xiaoxiaozi.com/index.php# 时,系统只会触发对shoudStartLoadWithRequest的调用,而不会调用webViewDidFinishLoad。

当我们实现“请稍候”弹层时,一定要将弹层自动化隐藏~

其他

也许有更合适的应对上述问题的解决办法,还请评论的同学不要藏私!

webview还有挺深的水,后续补充。

ios webview 相关》上有2条评论

  1. cescxu

    “但是发现比如页面有js实现了层级的变化,但是会将url增加#时,即由:http://www.xiaoxiaozi.com/index.php 变成 http://www.xiaoxiaozi.com/index.php# 时,系统只会触发对shoudStartLoadWithRequest的调用,而不会调用webViewDidFinishLoad。”
    这个问题我也碰到了,请问您有什么好的解决方法么?让webViewDidFinishLoad每次调用

发表评论

电子邮件地址不会被公开。 必填项已用*标注