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);?

    }

     

     

  • 相关阅读:
    windows下python访问ipv6报错
    windows下python的包管理器pip安装
    python添加windows域验证
    Java系列笔记(1)
    JVM调优总结 -Xms -Xmx -Xmn -Xss
    5种调优Java NIO和NIO.2的方式
    Java之美[从菜鸟到高手演变]之JVM内存管理及垃圾回收
    jmap,jhat分析内存
    JVM 垃圾回收算法
    JVM 类加载过程
  • 原文地址:https://www.cnblogs.com/MJP334414/p/5945312.html
Copyright © 2011-2022 走看看