iOS - WKWebView與JS之間的交互


一、前言

  這個星期面臨一個網頁的需求,需要用到這方面的知識,很久沒看過這方面的代碼了,記錄下吧。

  wkwebview的創建和使用就不再提及了,直接看與JS之間的交互吧。

二、內容

  1、JS調用OC

window.webkit.messageHandlers.<#對象名#>.postMessage(<#參數#>)

  

//進行配置控制器
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
//實例化對象
configuration.userContentController = [WKUserContentController new];
//調用JS方法
[configuration.userContentController addScriptMessageHandler:self name:@"actionEnd"];

 

#pragma mark - WKScriptMessageHandler

- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message {
    if ([message.name isEqualToString:@"actionEnd"]) {
        NSDictionary *jsData = message.body;
        NSLog(@"%@", message.name, jsData);
    }
}

  注:對象名要和前端溝通好。前端JS能回傳的類型只能是 NSNumber, NSString, NSDate, NSArray, NSDictionary, NSNull。

  2、OC調用JS

// 調用API方法
[self.weexWebView evaluateJavaScript:@“JS” completionHandler:^(id object, NSError * _Nullable error) {
    NSLog(@"obj:%@---error:%@", object, error);
}];

 

  目前需要用到的東西就這么多了,等到具體的JS代碼給到的時候再去調試吧。


免責聲明!

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



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