测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可 | BSD |
发布最后发布 | 2015年9月 |
SPM支持 SPM | ✗ |
由 Gaston Montes 维护。
iOS 中 Swift 和 Javascript 之间发送消息的桥梁。
SwiftJavascriptBridge 是一个 Swift 接口,用于在 WKWebView (Swift) 和 WebKit (Javascript) 之间桥接。
SwiftJavascriptBridge 可用于从 Swift 向 Javascript 发送消息,从 Javascript 向 Swift 发送消息,或从 Javascript 接收 Swift 发送的消息,反之亦然。
SwiftJavascriptBridge 版本 | 最低 iOS 目标 | 最低 OS X 目标 | 备注 |
---|---|---|---|
1.0.0 | iOS 7 | OS X 10.10.4 | 需要 Xcode 7。 |
CocoaPods 是一款用于 iOS 的依赖项管理器,可自动化并简化将第三方库用于您项目的流程。
CocoaPods 以 Ruby gem 的形式发布,并可以通过在 Terminal.app 中运行以下命令进行安装
$ sudo gem install cocoapods
$ pod setup
在项目根目录中,运行以下命令以创建 Podfile
$ pod init YOURXCODEPROJECTFILE
如果指定了 YOURXCODEPROJECTFILE
项目文件或当前目录中只有一个项目文件,则将根据项目中定义的目标自动生成目标。
创建了空的 Podfile,因此我们将添加依赖项到 Podfile 中,指定版本号
要使用 Pod 的最新版本,请省略版本号
pod 'SwiftJavascriptBridge'
冻结到特定版本号
pod 'SwiftJavascriptBridge', '0.0.1'
使用 logical
运算符
'> 0.1'
,任何高于 0.1 的版本。'>= 0.1'
,任何大于或等于 0.1 的版本。'< 0.1'
,任何低于 0.1 的版本。'<= 0.1'
,任何低于或等于 0.1 的版本。使用 optimistic
运算符
'~> 0.1.0'
,版本 0.1.0 或更高,最高至 0.2,但不包括 0.2。'~> 0.1'
,版本 0.1 或更高,最高至 1.0,但不包括 1.0。在您的项目中安装 Pods 依赖项。运行以下命令
$ pod install
从现在开始,请确保在构建项目时总是打开生成的 Xcode 工作区文件 (.xcworkspace),而不是项目文件。
SwiftJavascriptBridge 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "SwiftJavascriptBridge"
public func bridgeLoadScriptFromURL(urlString : String)
public func bridgeCallFunction(jsFunctionName: String, data: AnyObject?)
public func bridgeRemoveHandler(handlerName: String)
public func bridgeAddHandler(handlerName: String, handlerClosure: HandlerClosure)
public func bridgeLoadScriptFromURL(urlString : String)
加载包含 JavaScript 代码的 'urlString’ 页面。在页面加载后,JavaScript 函数可以调用 Swift 处理器,Swift 函数也可以调用 JavaScript 函数。
示例
var bridge: SwiftJavascriptBridge = SwiftJavascriptBridge.bridge()
self.bridge.bridgeLoadScriptFromURL("URLToLoad")
public func bridgeAddHandler(handlerName: String, handlerClosure: HandlerClosure)
添加 Swift 'handlerName’ 处理器。在调用 bridgeLoadScriptFromURL() 之前,bridgeAddHandler 不会有任何效果。bridgeAddHandler() 函数可以在任何时间调用,甚至在页面加载之前。
参数
: 示例
var bridge: SwiftJavascriptBridge = SwiftJavascriptBridge.bridge()
self.bridge.bridgeAddHandler("aHandlerName", handlerClosure: { (data: AnyObject?) -> Void in
// Handler called from JS.
NSLog(@"Handler called from JS.", nil);
});
public func bridgeRemoveHandler(handlerName: String)
移除 Swift 'handlerName’ 处理器。在调用 bridgeLoadScriptFromURL() 之前,bridgeRemoveHandler 不会有任何效果。
参数
: 示例
var bridge: SwiftJavascriptBridge = SwiftJavascriptBridge.bridge()
self.bridge.bridgeRemoveHandler("aHandlerName")
public func bridgeCallFunction(jsFunctionName: String, data: AnyObject?)
调用名为 'jsFunctionName’ 的 JavaScript 函数。'jsFunctionName’ 必须在 bridgeLoadScriptFromURL() 函数加载的页面中声明,否则调用将没有任何效果。bridgeCallHandler() 函数可以在任何时间调用,甚至在页面加载之前。
参数
: 示例
var bridge: SwiftJavascriptBridge = SwiftJavascriptBridge.bridge()
self.bridge.bridgeCallFunction("swiftCallJSFunction", data: nil)
包含一个示例项目与此存储库中。要运行示例项目,首先克隆存储库,然后从示例目录中运行pod install
。
注意:
示例项目使用与iOS 8.3或更高版本兼容的Nimble 2.0.0rc
测试框架。因此,示例项目的开发目标是8.3,但SwiftJavascriptBridge与iOS 8.0或更高版兼容。
贡献者:https://github.com/Elgatomontes/SwiftJavascriptBridge/graphs/contributors
Forks:https://github.com/Elgatomontes/SwiftJavascriptBridge/network/members
SwiftJavascriptBridge 由 Gastón Montes 所有并维护。
SwiftJavascriptBridge 在BSD许可证下提供。有关更多信息,请参阅LICENSE
文件。