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,030评论 2 12
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • iOS 的 Cookie 存取 https://juejin.im/entry/58d4c4cc44d904006...
    Farmers阅读 6,024评论 0 16
  • WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨...
    Aiana阅读 4,647评论 1 8
  • 凌晨一点过三十五毫无睡意,双脚弯曲席地而坐双手环抱膝盖看着被我丢弃的耳机又捡起带上耳朵,带上那可以听见嘲笑与讽刺...
    郭氏三儿阅读 259评论 0 0