UIWebView怎么拦截到网页里面JS发起的Ajax请求

rui90102 2015-01-08 10:08:45
现在碰到的情况是,普通的请求 如 跳转 都能在 webView里面的委托方法
.-(BOOL )webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType )navigationType 拦截到,问题是现在 的项目
需求是 要连网页上的JS发起的Ajax请求也能拦截到 就算不用这个 委托方法来拦截,还有没别的方法,求大神们 给一点思路,谢谢
...全文
7566 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
rui90102 2016-09-14
  • 打赏
  • 举报
回复
引用 9 楼 ydrslyh 的回复:
楼主,你的问题解决了吗?解决了告诉我一下,怎么做到的,我也遇到了同样问题
我是让html5那边改了,能让我捕捉到的链接
rui90102 2016-09-14
  • 打赏
  • 举报
回复
引用 8 楼 SHUAI_CAL 的回复:
楼主解决问题了吗?
我是让html5那边改了,能让我捕捉到的链接
qq_27081635 2016-07-08
  • 打赏
  • 举报
回复
求救,我也遇到这个问题
fgdfhgrt 2016-06-16
  • 打赏
  • 举报
回复
楼主,你的问题解决了吗?解决了告诉我一下,怎么做到的,我也遇到了同样问题
Kwok91 2015-08-28
  • 打赏
  • 举报
回复
楼主解决问题了吗?
Proteas 2015-01-19
  • 打赏
  • 举报
回复
引用 6 楼 Proteas 的回复:
1、WebView 在没发出一个请求前,会调用如下方法, 可以尝试在这里处理。 -[NSURLCache cachedResponseForRequest:] 2、再就是看看能否使用 NSURLProtocol 拦截。 没其他方法了。
iOS 8 下,方法2会失效。
Proteas 2015-01-19
  • 打赏
  • 举报
回复
1、WebView 在没发出一个请求前,会调用如下方法, 可以尝试在这里处理。 -[NSURLCache cachedResponseForRequest:] 2、再就是看看能否使用 NSURLProtocol 拦截。 没其他方法了。
Bannings 2015-01-10
  • 打赏
  • 举报
回复
引用 4 楼 zhangao0086 的回复:
[quote=引用 3 楼 rui90102 的回复:] [quote=引用 2 楼 zhangao0086 的回复:] 目前iOS与JS通信貌似只有两种方法:用webView的stringByEvaluatingJavaScriptFromString:方法主动获取,或者是shouldStartLoadWithRequest:回调被动接受,似乎没有其他的方式了
怎么捕捉ajax的请求呢[/quote] 由于Ajax没有刷新当前页面,所以shouldStartLoadWithRequest回调不会被执行,这种情况只能通过修改web的代码来解决,思路是改变页面的window.location,你可以参考下这篇:http://stackoverflow.com/questions/5353278/uiwebviewdelegate-not-monitoring-xmlhttprequest 把自己需要的参数放在url里,在Ajax执行的时候去修改window.location[/quote] 话又说回来,这种方式并不是拦截Ajax请求(无法拦截),只是在Ajax执行的时候通知你
Bannings 2015-01-10
  • 打赏
  • 举报
回复
引用 3 楼 rui90102 的回复:
[quote=引用 2 楼 zhangao0086 的回复:] 目前iOS与JS通信貌似只有两种方法:用webView的stringByEvaluatingJavaScriptFromString:方法主动获取,或者是shouldStartLoadWithRequest:回调被动接受,似乎没有其他的方式了
怎么捕捉ajax的请求呢[/quote] 由于Ajax没有刷新当前页面,所以shouldStartLoadWithRequest回调不会被执行,这种情况只能通过修改web的代码来解决,思路是改变页面的window.location,你可以参考下这篇:http://stackoverflow.com/questions/5353278/uiwebviewdelegate-not-monitoring-xmlhttprequest 把自己需要的参数放在url里,在Ajax执行的时候去修改window.location
rui90102 2015-01-09
  • 打赏
  • 举报
回复
引用 2 楼 zhangao0086 的回复:
目前iOS与JS通信貌似只有两种方法:用webView的stringByEvaluatingJavaScriptFromString:方法主动获取,或者是shouldStartLoadWithRequest:回调被动接受,似乎没有其他的方式了
怎么捕捉ajax的请求呢
Bannings 2015-01-08
  • 打赏
  • 举报
回复
目前iOS与JS通信貌似只有两种方法:用webView的stringByEvaluatingJavaScriptFromString:方法主动获取,或者是shouldStartLoadWithRequest:回调被动接受,似乎没有其他的方式了

29,048

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧