標籤:
一、本地代碼所需操作
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)
iOS-JavaScript向WKWebView傳值