我想创建一个在我的项目中使用的插件。我想知道如何调用或设置它以从 flutter 应用程序调用,而无需在 pubspec.yaml 中指定它(因为我使用一些其他包也使用它们自己的插件,如果我在 pubspec.yaml 中指定我的插件,这些插件不会工作)或分离到另一个包。
这是我当前的代码:
class DemoPlugin : FlutterPlugin, MethodCallHandler, ActivityAware {
private lateinit var channel: MethodChannel
private lateinit var context: Context
private lateinit var activity: Activity
override fun onMethodCall(call: MethodCall, result: Result) {
when (call.method) {
"demo" -> {
result.success("Demo")
}
}
}
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPluginBinding) {
context = flutterPluginBinding.applicationContext
channel = MethodChannel(flutterPluginBinding.binaryMessenger, channelName)
channel.setMethodCallHandler(this)
}
override fun onDetachedFromEngine(binding: FlutterPluginBinding) {
channel.setMethodCallHandler(null)
}
override fun onAttachedToActivity(binding: ActivityPluginBinding) {
activity = binding.activity
}
override fun onDetachedFromActivityForConfigChanges() {}
override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) {}
override fun onDetachedFromActivity() {}
}
最佳答案
根据 FlutterPlugin 类的文档,您可以在 MainActivity 类中执行此操作。
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
GeneratedPluginRegistrant.registerWith(flutterEngine)
flutterEngine.plugins.add(DemoPlugin()) // add the plugin
}
}
关于android - 直接在 flutter 项目中使用插件,无需分离到另一个包或在 pubspec.yaml 中添加插件字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73894331/