WKWebView 如何拿到Ajax里的请求参数和返回报文?
Xcode 8.2
1.JS端在Ajax 网络库里面 通过调用JSBridge传过来。 喔,用的是版本是。
pod 'WebViewJavascriptBridge', '~> 6.0.2'
2.ios端注册两个JSB
/*用于接收 JS端传来的 日志 */
[self.bridge registerHandler:@"log" handler:^(id data, WVJBResponseCallback responseCallback) {
}];
/*控制JS端是否 传日志给ios 端 */
[self.bridge registerHandler:@"isSendLogToNative" handler:^(id data, WVJBResponseCallback responseCallback) {
responseCallback(catchJsLogFlag);
}];
catchJsLogFlag属于宏定义 App Release模式不传日志 Debug模式 传日志
#if DEBUG
#define catchJsLogFlag @"1"
#else
#define catchJsLogFlag @"0"
#endif
JS端
在main.js添加变量 releaseLog
//控制上线的日志 是否打印 默认上线不打印日志false,调试打印日志 true
window.releaseLog = false;
在main.js 调用
jsBridge.callHandler(
protocolUrl.call.isSendLogToNative,
'',
function (responseData) {
if(responseData && responseData == '1'){
window.releaseLog = true;
}else{
window.releaseLog = false;
}
}
)
在common.js里面添加一个方法:
//调用全局打印日志函数 并把日志送给native端
//message 支持json对象 和string
log : function(message) {
//保证release上线后不打印日志
if(!window.releaseLog){
return;
}
//只有ios设备才会调用
if (window.device_type.indexOf("ios app") != -1){
jsBridge.callHandler(protocolUrl.call.log,message,function (responseData) {
});
}
}
最后Ajax请求的 的成功回调和失败回调里面 都调用公共log函数。
效果图如下:

大功告成!
网友评论