如何在JavaScriptCore中包含外部库?

Cez*_*zar 3 objective-c ios javascriptcore

我正在尝试通过JavaScriptCore加载外部库

具体来说,我想要最终的结果:

<script src="fancyLibrary.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

但是使用以下语法:

JSContext *context = [[JSContext alloc] initWithVirtualMachine:[[JSVirtualMachine alloc] init]];
[context loadExternalJavascriptFileWithName:@"fancyLibrary.js"];

JSValue *fancyFunction = context[@"fancy"];
Run Code Online (Sandbox Code Playgroud)

这可能是在当前时间吗?我想我可以在应用程序包中包含外部库并从那里调用它.这是将库加载到上下文中的问题.

Tay*_*enn 6

您只需使用评估API在上下文中加载脚本的内容.这实际上非常接近浏览器遇到脚本标记时的作用.

NSURL *scriptURL = [NSURL URLWithString:@"path/to/fancyLibrary.js"];
NSError *error = nil;
NSString *script = [NSString stringWithContentsOfURL:scriptURL encoding:NSUTF8StringEncoding error:&error];
[context evaluateScript:script];
Run Code Online (Sandbox Code Playgroud)