initMethodChannel method
void
initMethodChannel()
初始化方法通道
Implementation
void initMethodChannel() {
Log.i(tag, "initMethodChannel");
//设置原生方法回调处理
methodChannel.setMethodCallHandler((call)async{
Log.i(tag, "MethodCall");
Log.i(tag, "MethodCall:methodCallback:"+methodCallback.toString());
if(methodCallback!=null){
//通知库的使用者
//方法名首字母小写
String newMethodName=call.method.substring(0, 1).toLowerCase() + call.method.substring(1);
MethodCall newMethodCall = MethodCall(newMethodName,call.arguments);
Log.i(tag, "MethodCall:methodCallback:call:"+newMethodName.toString());
dynamic result=await methodCallback!.call(newMethodCall);
Log.i(tag, "MethodCall:methodCallback:result:"+result.toString());
//判断是否不需要自己处理,如库的使用者自己处理了
// 安全判断:非空 + 是布尔类型 + 值为 false
if (result != null && result is bool && result) {
return Future.value(null);
}
}
//自己的处理
Log.i(tag, "MethodCall:PocHandler handleMethodCall");
PocHandler.handleMethodCall(call);
// 所有分支兜底返回合法的 Future(避免返回 null)
return Future.value("ok");
});
}