diff --git a/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java b/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java index 71e90444..080fc569 100644 --- a/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java +++ b/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java @@ -16,6 +16,10 @@ import java.util.List; import java.util.Map; +import io.flutter.embedding.engine.plugins.FlutterPlugin; +import io.flutter.embedding.engine.plugins.activity.ActivityAware; +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; + import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodChannel.MethodCallHandler; @@ -24,7 +28,7 @@ /** * FlutterWebviewPlugin */ -public class FlutterWebviewPlugin implements MethodCallHandler, PluginRegistry.ActivityResultListener { +public class FlutterWebviewPlugin implements FlutterPlugin, ActivityAware, MethodCallHandler, PluginRegistry.ActivityResultListener { private Activity activity; private WebviewManager webViewManager; private Context context; @@ -41,6 +45,8 @@ public static void registerWith(PluginRegistry.Registrar registrar) { } } + public FlutterWebviewPlugin() {} + FlutterWebviewPlugin(Activity activity, Context context) { this.activity = activity; this.context = context; @@ -324,4 +330,34 @@ public boolean onActivityResult(int i, int i1, Intent intent) { } return false; } + + @Override + public void onAttachedToEngine(FlutterPluginBinding binding) { + channel = new MethodChannel(binding.getBinaryMessenger(), CHANNEL_NAME); + context = binding.getApplicationContext(); + + channel.setMethodCallHandler(this); + + //final FlutterWebviewPlugin instance = new FlutterWebviewPlugin(registrar.activity(), registrar.activeContext()); + //registrar.addActivityResultListener(instance); + + } + + @Override + public void onDetachedFromEngine(FlutterPluginBinding binding) {} + + @Override + public void onAttachedToActivity(ActivityPluginBinding binding) { + activity = binding.getActivity(); + binding.addActivityResultListener(this); + } + + @Override + public void onDetachedFromActivityForConfigChanges() {} + + @Override + public void onReattachedToActivityForConfigChanges(ActivityPluginBinding binding) {} + + @Override + public void onDetachedFromActivity() {} } diff --git a/example/ios/Runner/GeneratedPluginRegistrant.h b/example/ios/Runner/GeneratedPluginRegistrant.h index ed9a5c61..7a890927 100644 --- a/example/ios/Runner/GeneratedPluginRegistrant.h +++ b/example/ios/Runner/GeneratedPluginRegistrant.h @@ -2,6 +2,8 @@ // Generated file. Do not edit. // +// clang-format off + #ifndef GeneratedPluginRegistrant_h #define GeneratedPluginRegistrant_h diff --git a/example/ios/Runner/GeneratedPluginRegistrant.m b/example/ios/Runner/GeneratedPluginRegistrant.m index 0a6922d3..2844e6de 100644 --- a/example/ios/Runner/GeneratedPluginRegistrant.m +++ b/example/ios/Runner/GeneratedPluginRegistrant.m @@ -2,6 +2,8 @@ // Generated file. Do not edit. // +// clang-format off + #import "GeneratedPluginRegistrant.h" #if __has_include()