UIWebView中使用JSContext调用jQuery中的方法

之前一直没有使用过JSContext,昨天遇到相关问题就试了一下。


  • 加载本地HTML文件
NSString *mainBundle = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:mainBundle];
NSString *htmlPath = [NSString stringWithFormat:@"%@/test.html", mainBundle];
NSString *htmlString = [NSString stringWithContentsOfFile:htmlPath
                                                 encoding:NSUTF8StringEncoding
                                                    error:nil];

[self.webview loadHTMLString:htmlString baseURL:baseURL];
self.webview.delegate = self;`

  • JSContext调用
self.context = [self.webview valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
[self.context  evaluateScript: @"var sayHello;$(document).ready(function() { sayHello=function(name){ return 'Hello, ' + name; }});"];
JSValue *function = self.context[@"sayHello"];
JSValue* result = [function callWithArguments:@[@"world"]];
NSString *re = [result toString];
NSLog(@"%@", re);`
$(document).ready(function() {
    $.fn.helloWorld = function(name) {
      var result = "hello,"+name;
      return result;
    };
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容