添加Flutter插件有多种方式
1,对已有的Android工程,添加Flutter module , 配置会自动生成。
2,在pubspec.yaml文件中配置Flutter插件。
3,在继承FlutterActivity()的Activity中,重写configureFlutterEngine(flutterEngine)这个方法,称之为动态注册。
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
class MainActivity : FlutterActivity() {
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
Plg2(this).register(flutterEngine) //自定义的Flutter插件,详细往下看
GeneratedPluginRegistrant.registerWith(flutterEngine)
}
}
自定义的插件,代码如下,推荐使用上面第3种方式
import android.content.Context
import android.widget.Toast
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
class Plg2 : MethodChannel.MethodCallHandler {
private var context : Context ?= null
private var _channel : MethodChannel ?= null
constructor(context : Context ?){
this.context = context
}
fun register(flutterEngine : FlutterEngine){
_channel = MethodChannel(flutterEngine.dartExecutor , "p2")
_channel?.setMethodCallHandler(this)
}
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
when(call.method){
"log" -> {
Toast.makeText(context , "Click From" , Toast.LENGTH_LONG).show()
result.success("success")
}
}
}
}