@@ -6,21 +6,39 @@ import android.net.Uri
66
77import androidx.browser.customtabs.CustomTabsIntent
88
9+ import io.flutter.embedding.engine.plugins.FlutterPlugin
10+ import io.flutter.plugin.common.BinaryMessenger
911import io.flutter.plugin.common.MethodCall
1012import io.flutter.plugin.common.MethodChannel
1113import io.flutter.plugin.common.MethodChannel.MethodCallHandler
1214import io.flutter.plugin.common.MethodChannel.Result
1315import io.flutter.plugin.common.PluginRegistry.Registrar
1416
15- class FlutterWebAuthPlugin (private val context : Context ): MethodCallHandler {
17+ class FlutterWebAuthPlugin (private var context : Context ? = null , private var channel : MethodChannel ? = null ): MethodCallHandler, FlutterPlugin {
1618 companion object {
1719 val callbacks = mutableMapOf<String , Result >()
1820
1921 @JvmStatic
2022 fun registerWith (registrar : Registrar ) {
21- val channel = MethodChannel (registrar.messenger(), " flutter_web_auth " )
22- channel.setMethodCallHandler( FlutterWebAuthPlugin ( registrar.activity() ? : registrar.context() ))
23+ val plugin = FlutterWebAuthPlugin ( )
24+ plugin.initInstance( registrar.messenger(), registrar.context())
2325 }
26+
27+ }
28+
29+ fun initInstance (messenger : BinaryMessenger , context : Context ) {
30+ this .context = context
31+ channel = MethodChannel (messenger, " flutter_web_auth" )
32+ channel?.setMethodCallHandler(this )
33+ }
34+
35+ override public fun onAttachedToEngine (binding : FlutterPlugin .FlutterPluginBinding ) {
36+ initInstance(binding.getBinaryMessenger(), binding.getApplicationContext())
37+ }
38+
39+ override public fun onDetachedFromEngine (binding : FlutterPlugin .FlutterPluginBinding ) {
40+ context = null
41+ channel = null
2442 }
2543
2644 override fun onMethodCall (call : MethodCall , resultCallback : Result ) {
0 commit comments