zoukankan      html  css  js  c++  java
  • WKWebView和JS交互

     // 1.WKWebView的配置
            WKUserContentController *userContentController = [[WKUserContentController alloc] init];
            [userContentController addScriptMessageHandler:self name:@"myName"];
            _wkConfig = [[WKWebViewConfiguration alloc] init];
            _wkConfig.userContentController = userContentController;
            _wkwebView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:_wkConfig];

    // 2.iOS 8 引入WKWebViewWKWebView 不支持JavaScriptCore的方式但提供message handler的方式为JavaScript 与Objective-C 通信.

    Objective-C 中使用WKWebView的以下方法调用JavaScript:

    - (void)evaluateJavaScript:(NSString *)javaScriptString

             completionHandler:(void (^)(id, NSError *))completionHandler

    如果JavaScript 代码出错, 可以在completionHandler 进行处理.

     [_wkwebView evaluateJavaScript:@"onPayComplete(1)" completionHandler:nil];// OC调用JS函数,可传参数

    //3. WKScriptMessageHandler protocol?

    - (void)userContentController:(WKUserContentController *)userContentController

        didReceiveScriptMessage:(WKScriptMessage *)message

    {

        NSLog(@"Message: %@", message.body);

    }

    // 4.在JavaScript 将信息发给Objective-C:

    // window.webkit.messageHandlers.<name>.postMessage();?

     

    function postMyMessage()? {?

        var message = { 'message' : 'Hello, World!', 'numbers' : [ 1, 2, 3 ] };?

        window.webkit.messageHandlers.myName.postMessage(message);?

    }

     

     

  • 相关阅读:
    骨场经历
    聚财与聚人
    腾讯正式开始了QQForMAC的测试
    fiddler
    soap协议基本结构
    js小判断
    控制器
    resharper快捷键
    如何让datetime类型数据接受并且产出long或string类型?
    AES加密,解密方法
  • 原文地址:https://www.cnblogs.com/MJP334414/p/5945312.html
Copyright © 2011-2022 走看看