swift 笔记:iOS与JavaScript的交互(二):JavaScriptCore:16。 JSContext相关演示,在委托:webViewDidFinishLoad()中获取上下文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 笔记:iOS与JavaScript的交互(二):JavaScriptCore:16。 JSContext相关演示,在委托:webViewDidFinishLoad()中获取上下文相关的知识,希望对你有一定的参考价值。

extension UIWebViewWithJavaScriptCore: UIWebViewDelegate {
  func webViewDidFinishLoad(_ webView: UIWebView) {
    
    self.navigationItem.title = webView.stringByEvaluatingJavaScript(
      from: "document.title"
    )
    
    context = webView.value(
      forKeyPath: "documentView.webView.mainFrame.javaScriptContext"
    ) as? JSContext
    
    // ...
    
    let callBack : @convention(block) (String?) -> Void = { paramFromJS in
      let msg = "\(paramFromJS ?? "default value" as String)"
      self.alert(message: msg)
    }
    
    context?.setObject( 
      unsafeBitCast(callBack, to: AnyObject.self), 
      forKeyedSubscript: "invokeNative" as NSCopying & NSObjectProtocol
    )
  }
}

以上是关于swift 笔记:iOS与JavaScript的交互(二):JavaScriptCore:16。 JSContext相关演示,在委托:webViewDidFinishLoad()中获取上下文的主要内容,如果未能解决你的问题,请参考以下文章

swift 笔记:iOS与JavaScript的交互(二):JavaScriptCore:11。暴露

swift 笔记:iOS与JavaScript的交互(二):JavaScriptCore:8。调用引入的JavaScript - 调用

swift 笔记:iOS与JavaScript的交互(二):JavaScriptCore:7。调用引入的JavaScript - 引入方法

swift 笔记:iOS与JavaScript的交互(三):WKWebView 2.显示加载进度

swift 笔记:iOS与JavaScript的交互(二):JavaScriptCore:14。 camelCase调用

swift 笔记:iOS与JavaScript的交互(一):UIWebView - 2.1 UIWebViewDelegate