测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2017年3月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由 Zheng-Xiang Ke 维护。
JSContextFoundation 是 JavaScriptCore 框架的 Swift适配器,用于构建JavaScript运行环境。
Swift 2.3
pod 'JSContextFoundation', '~> 0.0.1'
Swift 3.1
pod 'JSContextFoundation', '~> 0.1.1'
Swift 2.3
.Package(url: "https://github.com/kf99916/JSContextFoundation.git", majorVersion: 0.0.1)
Swift 3.1
.Package(url: "https://github.com/kf99916/JSContextFoundation.git", majorVersion: 0.1.1)
JSContextFoundation 为JavaScript运行环境构建全局对象,允许您像在浏览器或Node.js中一样执行JavaScript代码。以下是支持的全球对象列表
global;
window;
console
.log([data][, ...]);
.info([data][, ...]);
.warn([data][, ...]);
.error([data][, ...]);
import JSContextFoundation
let jsContext = JSContextFoundation()
导入JavaScript模块时,模块的来源可以是文件路径或URL
let path = NSBundle(forClass: self.dynamicType).pathForResource("Module", ofType: "js")!
do {
try jsContext.requireWithPath(path)
} catch JSContextFoundationError.FileNotFound {
print(path + " is not found")
} catch JSContextFoundationError.FileNotLoaded {
print(path + " cannot be loaded")
} catch {
print("Unknow Exception")
}
// ...
let url = NSURL(string: "https://FQDN/Module.js")!
jsContext.requireWithUrl(url, completionHandler: {error in
if let error = error {
switch error {
case JSContextFoundationError.FileNotFound:
print(url.absoluteString + " is not found")
case JSContextFoundationError.FileNotDownloaded:
print(url.absoluteString + " is not downloaded")
default:
print("Unknown Error")
}
return
}
// ...
})
所有其他用法与 JSContext 相同。有关详细信息,请参阅Apple 文档中的 JSContext。
Zheng-Xiang Ke,[email protected]
JSContextFoundation 可在 MIT 许可证下获得。有关更多信息,请参阅 LICENSE 文件。