redux の代わりにflutter_blocパッケージを使用して試してみましたが、ネイティブ (Android/iOS) から受信するときにフラッター ブロック イベントを呼び出す方法が完全にはわかりません。main.dartファイルの親MyAppウィジェットで、作成したカスタム クラスに redux ストアを渡し、そのクラス ( MethodChannelHandlerと呼ばれる) からメソッドをディスパッチしたため、redux の方が簡単でした。
main.dart:
void main() {
runApp(new MyApp());
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final Store<AppState> store = Store<AppState>(
// ... redux stuff ...
);
@override
void initState() {
// sauce
MethodChannelHandler(store);
super.initState();
}
}
methodChannelHandler.dart:
class MethodChannelHandler {
Store<AppState> store;
MethodChannelHandler(this.store) {
methodChannel.setMethodCallHandler(_handleMethod);
}
// Handle method calls from native
Future _handleMethod(MethodCall call) async {
if (call.method == A_METHOD) {
store.dispatch("something from native")
}
}
}
注:私はプログラミング語彙に関しては無能なので、可能であれば、私が持っているようなサンプル コードの小さなスニペットを教えてください。または、テキスト ブロックを提供する代わりに、参照できるGitHub リポジトリにリンクしてください。多分わからないでしょう。