【发布时间】:2020-04-17 17:56:04
【问题描述】:
我正在尝试实现一个颤振插件,但不知何故,覆盖函数 onAttachedToEngine 永远不会被调用。据此doc
在调用 PluginRegistry.add(FlutterPlugin) 期间, FlutterEngine 将调用 onAttachedToEngine(FlutterPluginBinding) 给定的 FlutterPlugin。
但它永远不会被调用。不过我注意到的一件事是,它实际上在您第一次构建和调试应用程序时调用,并在此后的任何重建后停止。 这是我的代码:
public class Plugin : FlutterPlugin, MethodCallHandler {
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
channel = MethodChannel(flutterPluginBinding.getFlutterEngine().getDartExecutor(), "flutter_plugin")
channel.setMethodCallHandler(this)
println("Engine is attached!")
}
companion object {
@JvmStatic
fun registerWith(registrar: Registrar) {
val channel = MethodChannel(registrar.messenger(), "flutter_blockstack")
channel.setMethodCallHandler(FlutterBlockstackPlugin())
println("Registered!")
}
}
override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) {
if (call.method == "getPlatformVersion") {
result.success("Android ${android.os.Build.VERSION.RELEASE}")
} else {
result.notImplemented()
}
}
}
【问题讨论】: