Skip to content

Instantly share code, notes, and snippets.

@haashem
Last active May 18, 2022 15:41
Show Gist options
  • Save haashem/a83c86a5be3eb34b3fb7aa99590c5e37 to your computer and use it in GitHub Desktop.
Save haashem/a83c86a5be3eb34b3fb7aa99590c5e37 to your computer and use it in GitHub Desktop.
Naurt iOS implementation
import Flutter
import Combine
import UIKit
import naurt_framework
public class SwiftNaurtIosPlugin: NSObject, FlutterPlugin {
private var subscriptions = [AnyCancellable]()
public static func register(with registrar: FlutterPluginRegistrar) {
let channel = FlutterMethodChannel(name: "com.naurt.ios", binaryMessenger: registrar.messenger())
let instance = SwiftNaurtIosPlugin()
registrar.addMethodCallDelegate(instance, channel: channel)
}
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
if (call.method == "initialize") {
let arguments = call.arguments as! Dictionary<String, Any>
Naurt.shared.initialise(
apiKey: arguments["apiKey"] as! String,
precision: arguments["precision"] as! Int
)
subscriptions.removeAll()
subscriptions.append(Naurt.shared.$isInitialised.sink { value in
result(value)
})
subscriptions.append(Naurt.shared.$isRunning.sink { [weak self ] value in
self?.channel!.invokeMethod("onRunning", arguments: value)
})
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment