Maraca 版本 1.0.10 - Swift Package Manager

Socket Mobile 是数据采集和交付解决方案的领先创新者,致力于提高生产力。

Maraca 在您的 iOS 应用程序(使用我们的 iOS CaptureSDK)和 Web 应用程序(使用我们的 CaptureJS SDK)之间建立连接。 这使得 Web 应用程序能够以与我们的 iOS SDK 提供的相同灵活性连接我们的扫描仪和 NFC 阅读器。

设备兼容性和 Maraca 版本

设备 < 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

Add the Package to the project

添加软件包后,您应该在 Xcode 的 Project Navigator 中看到 Maraca 添加到您的 Package Dependencies 中,如下所示

Added Package to the project

注意:此 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 文件。