iOS-JavaScript向WKWebView傳值


一、本地代碼所需操作

1、創建viewController並遵守協議

@interface ViewController ()<WKNavigationDelegate,WKScriptMessageHandler,WKUIDelegate>

2、注冊ScriptMessageHandler

WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
[configuration.userContentController addScriptMessageHandler:self name:@"Redirect"]; self.secondWebView = [[[WKWebView alloc] initWithFrame:self.view.bounds configuration:configuration] autorelease];

3、實現WKScriptMessageHandler協議的代理方法

- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message {     NSLog(@"message====%@",message); }

二、JavaScript代碼

1、用WKWebView加載h5頁面觸發js代碼如下

var message = native; window.webkit.messageHandlers.Redirect.postMessage(message) 

三、執行js代碼之后,本地代理方法就會監聽到js傳過來的數據,控制台輸出

message====native

總結:

1、swift實現流程:http://www.cocoachina.com/swift/20150907/13356.html

2、本地注冊的ScriptMessageHandler與js里邊window.webkit.messageHandlers.后邊的名字要保持一致。

eg.
//這兩句代碼同為:Redirect [configuration.userContentController addScriptMessageHandler:self name:@"Redirect"]; window.webkit.messageHandlers.Redirect.postMessage(message)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM