美文网首页Flutter
Flutter Plugin里获取Context

Flutter Plugin里获取Context

作者: 禄子_c79b | 来源:发表于2022-04-02 10:20 被阅读0次

两种方式:

1通过插件类实现ActivityAware
2PluginRegistry.Registrar.context
第一种:
.将我们的插件类实现ActivityAware

public class TestPlugin implements FlutterPlugin, ActivityAware,MethodCallHandler { ...
} 

实现ActivityAware的方法

public class TestPlugin implements FlutterPlugin, ActivityAware,MethodCallHandler {
   private Activity activity;
     @Override
     public void onAttachedToActivity(ActivityPluginBinding binding) {
       activity = binding.getActivity();
     }
     @Override
     public void onDetachedFromActivityForConfigChanges() {
       this.onDetachedFromActivity();
     }
     @Override
     public void onReattachedToActivityForConfigChanges(ActivityPluginBinding binding) {
       this.onAttachedToActivity(binding);
     }
     @Override
     public void onDetachedFromActivity() {
       activity = null;
     }
}

通过代码activity.getApplicationContext()即可获取到当前context了
第二种:
写一个构造方法

public class TestPlugin implements FlutterPlugin,MethodCallHandler { ...
private final Context context;
   public TestPlugin (PluginRegistry.Registrar registrar) {
       this.context = registrar.context();
   }
} 

GeneratedPluginRegistrant registerWith里添加插件传值

 @Keep
public final class GeneratedPluginRegistrant {
 public static void registerWith(@NonNull FlutterEngine flutterEngine) {
   try {
     flutterEngine.getPlugins().add(new io.flutter.plugins.FlutterPlugin3Plugin( new ShimPluginRegistry(flutterEngine).registrarFor("TestPlugin ")));
   } catch(Exception e) {
     Log.e(TAG, "Error registering plugin flutter_boost, com.idlefish.flutterboost.FlutterBoostPlugin", e);
   }
 }
}

相关文章

网友评论

    本文标题:Flutter Plugin里获取Context

    本文链接:https://www.haomeiwen.com/subject/rlfajrtx.html