Last active
May 18, 2022 15:41
-
-
Save haashem/a83c86a5be3eb34b3fb7aa99590c5e37 to your computer and use it in GitHub Desktop.
Naurt iOS implementation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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