JS調用WKWebview(通用)


- (void)setupWebView {
    WKUserContentController *userContent = [[WKUserContentController alloc] init];
    ALYJSHandler *jsHandler = [[ALYJSHandler alloc] init];
    [userContent addScriptMessageHandler:jsHandler name:@"jsObj"];
    
    WKWebViewConfiguration *configer = [[WKWebViewConfiguration alloc] init];
    
    NSString *js = @"\
        var jsObj = new Object();\
        jsObj.notify = function(event,session,data){\
            window.webkit.messageHandlers.jsObj.postMessage({'event':event, 'session':session, 'data':data});\
        }";
    
    WKUserScript *userScript = [[WKUserScript alloc] initWithSource:js injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:YES];
    [userContent addUserScript:userScript];

    configer.userContentController = userContent;
    configer.preferences = [[WKPreferences alloc] init];
    configer.preferences.javaScriptEnabled = YES;
    configer.preferences.javaScriptCanOpenWindowsAutomatically = NO;
    configer.allowsInlineMediaPlayback = YES;
    
    self.webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) configuration:configer];
    [self setWebViewUA];
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:URL_BOARD]]];
    [self.view addSubview:self.webView];
}

/// js端調用如下

jsObj.notify('a','b','c')

/// oc調用如下

[self.webView evaluateJavaScript:@"jsObj.notify('a','b','c')" completionHandler:nil];

說明: native主動聲明js的一個全局變量,并實現注入js的函數,即可正常調用了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前言 關于UIWebView的介紹,相信看過上文的小伙伴們,已經大概清楚了吧,如果有問題,歡迎提問。 本文是本系列...
    CoderLF閱讀 9,023評論 2 12
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,252評論 4 61
  • iOS 的 Cookie 存取 https://juejin.im/entry/58d4c4cc44d904006...
    Farmers閱讀 6,019評論 0 16
  • WKWebView 是蘋果在 WWDC 2014 上推出的新一代 webView 組件,用以替代 UIKit 中笨...
    Aiana閱讀 4,644評論 1 8
  • 凌晨一點過三十五毫無睡意,雙腳彎曲席地而坐雙手環抱膝蓋看著被我丟棄的耳機又撿起帶上耳朵,帶上那可以聽見嘲笑與諷刺...
    郭氏三兒閱讀 258評論 0 0