OC调用JS方法

JavaScript016

OC调用JS方法,第1张

//js方法:

functionshowAlert(message){

            alert(message)

        }

oc调用:

JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]NSString *textJS = @"showAlert('这里是JS中alert弹出的message')"

[context evaluateScript:textJS]

1 利用JSContext

1 在webViewDidFinishLoad方法里,通过当前webView的键获取到jscontext

2 将context对象与js方法建立桥接联系,

2 利用WKWebView的新特性MessageHandler来实现JS调用原生方法。

2.1 MessageHandler 是什么?

WKWebView 初始化时,有一个参数叫configuration,它是WKWebViewConfiguration类型的参数,而WKWebViewConfiguration有一个属性叫userContentController,它又是WKUserContentController类型的参数。

WKUserContentController对象有一个方法- addScriptMessageHandler:name:,

我把这个功能简称为MessageHandler。

2.2 怎么使用MessageHandler?

a 创建WKWebViewConfiguration对象,配置各个API对应的MessageHandler。WKUserContentController对象可以添加多个scriptMessageHandler。

2.3 处理HTML中JS调用