0

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 リポジトリにリンクしてください。多分わからないでしょう。

4

1 に答える 1