![](/img/trans.png)
[英]Cannot find the `flutter.plugin.platforms` key in the `pubspec.yaml`
[英]Use plugin directly inside flutter project without separating to another package or adding plugin field in pubspec.yaml
我想创建一个插件以在我的项目中使用。 我想知道如何调用或设置它以从 flutter 应用程序调用而无需在 pubspec.yaml 中指定它(因为我使用其他一些也使用它们自己的插件的包,如果我在 pubspec.yaml 中指定我的插件,那些插件不会工作)或分离到另一个 package。
这是我当前的代码:
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 Class 的文档,您可以在 MainActivity Class 中执行此操作。
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
GeneratedPluginRegistrant.registerWith(flutterEngine)
flutterEngine.plugins.add(DemoPlugin()) // add the plugin
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.