From 7731d13bb909e703a0f832b6bd17f29c09e5f58b Mon Sep 17 00:00:00 2001 From: Jordy Langen Date: Mon, 25 Jul 2022 16:11:39 +0200 Subject: [PATCH] Expose ProtocolHanlderPlugin so it's possible to call 'handleEventURL' for multiple plugins --- macos/Classes/ProtocolHandlerPlugin.swift | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/macos/Classes/ProtocolHandlerPlugin.swift b/macos/Classes/ProtocolHandlerPlugin.swift index acb5a49..7cbd72a 100644 --- a/macos/Classes/ProtocolHandlerPlugin.swift +++ b/macos/Classes/ProtocolHandlerPlugin.swift @@ -2,9 +2,15 @@ import Cocoa import FlutterMacOS public class ProtocolHandlerPlugin: NSObject, FlutterPlugin { + private static var _instance: ProtocolHandlerPlugin? private var channel: FlutterMethodChannel! - private var _initialUrl: String? + + public static var instance: ProtocolHandlerPlugin { + get { + return _instance! + } + } override init(){ super.init(); @@ -14,12 +20,13 @@ public class ProtocolHandlerPlugin: NSObject, FlutterPlugin { public static func register(with registrar: FlutterPluginRegistrar) { let channel = FlutterMethodChannel(name: "protocol_handler", binaryMessenger: registrar.messenger) let instance = ProtocolHandlerPlugin() + _instance = instance instance.channel = channel registrar.addMethodCallDelegate(instance, channel: channel) } @objc - private func handleURLEvent(_ event: NSAppleEventDescriptor, with replyEvent: NSAppleEventDescriptor) { + public func handleURLEvent(_ event: NSAppleEventDescriptor, with replyEvent: NSAppleEventDescriptor) { guard let urlString = event.paramDescriptor(forKeyword: AEKeyword(keyDirectObject))?.stringValue else { return } if (_initialUrl == nil) { _initialUrl = urlString