Socket Mobile 是数据采集和交付解决方案的领先创新者,致力于提高生产力。
Maraca 在您的 iOS 应用程序(使用我们的 iOS CaptureSDK)和 Web 应用程序(使用我们的 CaptureJS SDK)之间建立连接。 这使得 Web 应用程序能够以与我们的 iOS SDK 提供的相同灵活性连接我们的扫描仪和 NFC 阅读器。
设备 | < 1.0.7 | >= 1.0.7 | 1.0.10 |
---|---|---|---|
SocketCam C820 | ❌ | ✅ | ✅ |
S720/D720/S820 | ❌ | ❌ | ✅ |
D600、S550 和所有其他条形码扫描仪 | ✅ | ✅ | ✅ |
S370 | ❌ | ❌ | ✅ |
Maraca 使用 Swift Package Manager。
首先,您需要安装 Xcode。
要在您的 Xcode 项目中包含 SDK,您必须在项目的设置部分中的“Package Dependencies”选项卡中添加一个 Package Dependency
。
添加此仓库的 URL:https://github.com/SocketMobile/swift-package-maraca
添加软件包后,您应该在 Xcode 的 Project Navigator 中看到 Maraca
添加到您的 Package Dependencies 中,如下所示
注意:此 Maraca Swift Package 依赖于我们的 CaptureSDK Swift Package,就像以前使用 Cocoapods 一样。
在底层,Maraca 是我们 iOS Capture SDK 的一个总括。 因此,自然地,您需要提供凭据才能开始。
最重要的步骤是调用 observeJavascriptMessageHandlers(_:)
。 如果您熟悉 WKUserContentController,您可以提供自己的 Javascript 消息处理程序名称。 否则,可以为 nil。 此函数支持将包含数据的消息从使用 CaptureJS 的 Web 应用程序传输到您的 iOS 应用程序。
在 beging(withAppKey:appId:developerId:completion:)
的完成处理程序中,使用公共的 Maraca.shared.webViewConfiguration
配置创建您的 WKWebView
override func viewDidLoad() {
super.viewDidLoad()
setupMaraca()
}
private func setupMaraca() {
let appKey = <Your App Key>
let appId = <Your App ID>
let developerId = <Your Developer ID>
let bundle = Bundle.main
Maraca.shared.injectCustomJavascript(mainBundle: bundle, javascriptFileNames: ["getInputForDecodedData"])
.observeJavascriptMessageHandlers(YourOwnMessageHandlers.allCases.map { $0.rawValue })
.setDelegate(to: self)
.begin(withAppKey: appKey,
appId: appId,
developerId: developerId,
completion: { [weak self] (result) in
if result == .E_NOERROR {
self?.setupUI()
} else {
// Encountered some error, inspect result
}
})
}
// Initialize WKWebView with Maraca.shared.webViewConfiguration after
// setting up Maraca
private var webview: WKWebView!
private func setupUI() {
webview = {
let w = WKWebView(frame: .zero, configuration: Maraca.shared.webViewConfiguration)
w.navigationDelegate = self
return w
}()
view.addSubview(webview)
// Set up constraints, etc..
let myWebApplicationURLString = .....
guard let url = URL(string: myWebApplicationURLString) else {
return
}
loadMyWebApplication(with: url)
}
完整的文档可以在这里找到
要运行示例项目,请首先转到 Example 目录。
Maraca 在 MIT 许可证下可用。 有关更多信息,请参阅 LICENSE 文件。