WKWebView 獲取JS端的console.log日誌
JS端程式碼不做任何改變,所有程式碼寫於native端。
主要思路: 1.重寫js的console.log方法。 2.iOS端在h5開始建立DOM樹的時候注入。
#import "SKWebView.h"
@interface WKWebView ()
@end
@implementation SKWebView
- (instancetype)initWithFrame:(CGRect)frame configuration:(WKWebViewConfiguration*)configuration {
if(self= [superinitWithFrame:frameconfiguration:configuration])
{
WKUserContentController *userCC = configuration.userContentController;
[userCCaddScriptMessageHandler:self name:@"log"];
}
return self;
}
- (void)showConsole {
NSString *jsCode = @"console.log = (function(oriLogFunc){\
return function(str)\
{\
window.webkit.messageHandlers.log.postMessage(str);\
oriLogFunc.call(console,str);\
}\
})(console.log);";
[self.configuration.userContentController addUserScript:[[WKUserScript alloc] initWithSource:jsCode injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:YES]];
}
- (void)userContentController:(WKUserContentController*)userContentController didReceiveScriptMessage:(WKScriptMessage*)message {
NSLog(@"%@",NSStringFromSelector(_cmd));
NSLog(@"%@",message.body);
}
原始碼地址:https://github.com/housenkui/WKWebView-Console
您的星星,是我最大的鼓勵。O(∩_∩)O謝謝
相關文章
- 智慧手環core日誌獲取
- 智慧手環guard日誌獲取
- 獲取Tomcat更詳細的日誌Tomcat
- ios 如何獲取WKWebview錯誤資訊iOSWebView
- DB2_獲取診斷日誌DB2
- ABP vNext 審計日誌獲取真實客戶端IP客戶端
- 獲取兩天內的告警日誌(bash|shell|oracle)Oracle
- 獲取一週內的告警日誌(python|Oracle)PythonOracle
- 使用 adb 命令獲取指定應用的日誌
- 獲取兩天內的告警日誌(AIX|ksh|shell|oracle)AIOracle
- 本地檔案包含之包含日誌獲取webshellWebshell
- 使用 javascript 獲取瀏覽器(或 WKWebView)的安全區資訊JavaScript瀏覽器WebView
- js日誌輸出還是隻會console.log麼,那你就out了JS
- java獲取redis的日誌資訊和動態監控資訊JavaRedis
- nginx設定反向代理怎麼獲取客戶端的真實IP和域名以供日誌分析Nginx客戶端
- Win10如何獲取dump日誌檔案|windows10獲取dump檔案的步驟Win10Windows
- WKWebView詳解&WKWebVieW和JS互動WebViewJS
- 分析24小時日誌獲取交易時間分佈
- js獲取時間日期中的年月日等部分JS
- js獲取元素的方法(獲取html元素的方法)JSHTML
- 如何用NodeJS讀取分析Nginx錯誤日誌NodeJSNginx
- mysql之 xtrabackup原理、備份日誌分析、備份資訊獲取MySql
- js獲取日期JS
- JS獲取客戶端IP地址與機器名JS客戶端
- js獲取select的值JS
- js 與WKWebView 互動JSWebView
- WKWebView與JS互動WebViewJS
- JSF/JAVA 根據IP獲取客戶端Mac地址JSJava客戶端Mac
- JS 獲取文件元素JS
- js獲取表格方法JS
- Git 獲取遠端分支Git
- logstash的安裝使用、收集json日誌、csv日誌總結JSON
- 捕獲NSLog日誌小記
- nodejs 日誌模組 winston 的使用NodeJS
- js如何獲取指定元素的尺寸JS
- js獲取指定月份的天數JS
- js獲取位址列的引數JS
- Java 日誌快取機制的實現Java快取