JSContextFoundation 0.1.1

JSContextFoundation 0.1.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2017年3月
SwiftSwift 版本3.0
SPM支持 SPM

Zheng-Xiang Ke 维护。



  • Zheng-Xiang Ke

JSContextFoundation

JSContextFoundation 是 JavaScriptCore 框架的 Swift适配器,用于构建JavaScript运行环境。

要求

  • iOS 8.0 或更高
  • Swift 2.3 或更高

安装

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)

JavaScript 运行环境

JSContextFoundation 为JavaScript运行环境构建全局对象,允许您像在浏览器或Node.js中一样执行JavaScript代码。以下是支持的全球对象列表

global;
window;
console
  .log([data][, ...]);
  .info([data][, ...]);
  .warn([data][, ...]);
  .error([data][, ...]);

用法

import JSContextFoundation

let jsContext = JSContextFoundation()

导入JavaScript模块

导入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")
}

// ...

URL

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 文件。