特定のAPI /ハードウェアコンポーネントとやり取りする必要がある場合、FlutterからAndroid/Nativeコードに情報をどのように渡しますか?
他の方法で情報を送信できるイベントチャネルや、コールバックに似たものはありますか?
これは、簡単な実装の紹介です。
コードは次の例に基づいています: https://flutter.io/platform-channels/#codec
1.文字列値「text」を渡す:
String text = "whatever";
Future<Null> _getBatteryLevel(text) async {
String batteryLevel;
try {
final String result = await platform.invokeMethod('getBatteryLevel',{"text":text});
batteryLevel = 'Battery level at $result % .';
} on PlatformException catch (e) {
batteryLevel = "Failed to get battery level: '${e.message}'.";
}
setState(() {
_batteryLevel = batteryLevel;
});
}
2. RandomFunction()の後に応答「batterylevel」を取得する
public void onMethodCall(MethodCall call, MethodChannel.Result result) {
if (call.method.equals("getBatteryLevel")) {
text = call.argument("text");
String batteryLevel = RandomFunction(text);
if (batteryLevel != null) {
result.success(batteryLevel);
} else {
result.error("UNAVAILABLE", "Battery level not available.", null);
}
} else {
result.notImplemented();
}
}
お役に立てれば!
はい、flutterには EventChannel
クラスがあり、これはまさにあなたが探しているものです。
ここ は、MethodChannel
およびEventChannel
の実装方法を示す例です。そして this 中記事では、EventChannel
をflutterに実装する方法を示しています。
お役に立てば幸いです!
目的C
call.arguments [@ "parameter"]