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謝謝
相關文章
- 獲取Tomcat更詳細的日誌Tomcat
- ABP vNext 審計日誌獲取真實客戶端IP客戶端
- 智慧手環guard日誌獲取
- 智慧手環core日誌獲取
- 使用 adb 命令獲取指定應用的日誌
- js日誌輸出還是隻會console.log麼,那你就out了JS
- 本地檔案包含之包含日誌獲取webshellWebshell
- WKWebView詳解&WKWebVieW和JS互動WebViewJS
- 使用 javascript 獲取瀏覽器(或 WKWebView)的安全區資訊JavaScript瀏覽器WebView
- nginx設定反向代理怎麼獲取客戶端的真實IP和域名以供日誌分析Nginx客戶端
- js獲取日期JS
- js 與WKWebView 互動JSWebView
- JS 獲取文件元素JS
- 捕獲NSLog日誌小記
- WKWebView和WebView與JS的互動方式WebViewJS
- Spring Boot利用AOP獲取使用者操作實現日誌記錄Spring Boot
- js獲取url傳遞引數,js獲取url?號後面的引數JS
- Java 面試題之 Logback 列印日誌是如何獲取當前方法名稱的?Java面試題
- three.js獲取物件的材質JS物件
- JS基礎_獲取元素的樣式JS
- js_獲取css的@media screen的值JSCSS
- Node.js + ELK 日誌規範Node.js
- K8S叢集儲存服務相關日誌獲取指南K8S
- mysqlbinlog命令詳解 Part 6 讀取遠端MySQL伺服器日誌MySql伺服器
- 雲端日誌服務——UPLOG的實現
- 使用js獲取滑鼠座標JS
- js 獲取瀏覽器核心JS瀏覽器
- js中獲取鍵盤事件JS事件
- 使用 JS 獲取副檔名JS
- WKWebView的快取策略不支援POST請求!!!WebView快取
- 想獲取JS載入網頁的源網頁的原始碼,不想獲取JS載入後的資料JS網頁原始碼
- js_原生js獲取當前的使用者ipJS
- js獲取dom節點的方法有哪些JS
- js獲取多少天以後的時間JS
- js 獲取 table 中的每一個tdJS
- js獲取當前的具體時間JS
- 用js獲取當前月份的天數JS
- iframe的操作-Js/Jquery獲取iframe中的元素JSjQuery