android - FlutterPluginBinding.flutterEngine 已弃用
问题描述
我开发了一个Flutter插件,问题是FlutterPluginBinding.flutterEngine
getFlutterEngine
已被弃用。完整代码如下:
class AMPlugin : FlutterPlugin, MethodCallHandler, ActivityAware, PluginRegistry.ActivityResultListener {
private lateinit var channel: MethodChannel
private var activity: Activity? = null
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
val engine = flutterPluginBinding.flutterEngine
channel = MethodChannel(engine.dartExecutor, "aM")
channel.setMethodCallHandler(this)
}
override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) {
when (call.method) {
else -> result.notImplemented()
}
}
override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
channel.setMethodCallHandler(null)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?): Boolean {
return true
}
override fun onDetachedFromActivity() {
activity = null
}
override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) {
activity = binding.activity
}
override fun onAttachedToActivity(binding: ActivityPluginBinding) {
activity = binding.activity
}
override fun onDetachedFromActivityForConfigChanges() {
activity = null
}
companion object {
@Suppress("UNUSED")
@JvmStatic
fun registerWith(registrar: Registrar) {
val channel = MethodChannel(registrar.messenger(), "aM")
channel.setMethodCallHandler(AMPlugin())
}
}
}
但我不明白如何以另一种方式获取FlutterEngine
或初始化MethodChannel
。我试过了,val engine = FlutterEngine(binding.applicationContext)
但它会导致崩溃,似乎它需要Activity
上下文。
如何替换这个已弃用的 API?
解决方案
代替:
channel = MethodChannel(engine.dartExecutor, "aM")
和
channel = MethodChannel(flutterPluginBinding.getBinaryMessenger(), "aM")
推荐阅读
- css - CSS 谷歌地图消失效果
- java - 为什么输出会是“100”和“500”?
- c++ - 将(排序的)std::vector 传递给方法
- mysql - SQL连接具有重复条目和count()组的多个表
- mongodb - 按小时分组并计数 MongoDB
- amazon-redshift - Redshift:更改服务器配置或保留更改所有会话
- xamarin - 如何在列表视图中实现 xamarin Forms Checkbox 仅删除选中的行
- python - AWS Elastic BeanStalk SignatureDoesNotMatch
- c# - 从网站收到的 JSON.net 过滤器存储库
- java - 如何从订阅者返回 Observable?