访问UIWebView的JavaScriptCore引擎

asp*_*yct 9 objective-c uiwebview ios javascriptcore

我刚刚在iOS7中发现了一个新的框架:JavaScriptCore.

它看起来很棒,但是如何访问运行时/上下文UIWebView

Tom*_*ift 11

这没有官方机制.但我知道有两种方法可以获得JSContext.我可能不会在运送应用程序中使用它们.

  1. 使用KVC访问内部UIWebView属性.在这篇博客文章中详细解释:http: //blog.impathic.com/post/64171814244/true-javascript-uiwebview-integration-in-ios7
JSContext *ctx = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
Run Code Online (Sandbox Code Playgroud)
  1. 一个加入魔术方法NSObject通过一个类别.这里详细解释一下:https://github.com/TomSwift/UIWebView-TS_JavaScriptContext
@implementation NSObject (magic)
- (void) webView: (id) unused didCreateJavaScriptContext: (JSContext*) ctx forFrame: (id) frame
{
    // ...
}
@end
Run Code Online (Sandbox Code Playgroud)