UIWebView---JavaScriptCore和JS交互

来源:互联网 发布:网络真人赌博有猫腻吗 编辑:程序博客网 时间:2024/06/05 15:17

页面要做的效果如下图



JS代码

<!DOCTYPE html><html>    <body>        <h1 id="id1">I'm Html </h1>        <button type="button" id = "id2" onclick="clickMe({'name':'Leon'})"> Talk To iOS</button>        <script>            function changeTitle() {                document.getElementById('id1').innerText='I receive Your Message';// 修改标题            }        </script>    </body></html>

JS调用OC

- (void)webViewDidFinishLoad:(UIWebView *)webView{    if (!_jsContext) {        _jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];        // 2. 关联打印异常        __weak ViewController *weakSelf = self;        _jsContext.exceptionHandler = ^(JSContext *context, JSValue *exceptionValue) {            context.exception = exceptionValue;            NSLog(@"异常信息:%@", exceptionValue);        };        // js调用oc        _jsContext[@"clickMe"] = ^(NSDictionary *param) {            weakSelf.label.text = param[@"name"];            NSLog(@"%@", param);        };                id userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];        NSLog(@"%@", userAgent);    }}

OC调用JS

- (IBAction)callJSAction:(UIButton *)sender {    // changeTitle对应 js的changeTitle    JSValue *changeTitle = _jsContext[@"changeTitle"];    [changeTitle callWithArguments:nil];}



0 0
原创粉丝点击