web-dev-qa-db-fra.com

Ouvrir UIViewController natif dans Flutter

J'ai une application que je développe dans Flutter, et elle a un UIViewController qui doit être implémenté en natif IOS (il n'y a pas d'autre solution de contournement, c'est un must))

Je l'ai implémenté, cela fonctionne selon les premiers tests, mais je voudrais vérifier si c'est okkey selon vous, car je ne suis pas très expérimenté en Flutter, et j'ai un peu peur faites un désordre dans la pile de navigation de mon application qui peut causer des bugs à l'avenir.

Donc, je l'ai implémenté par MethodChannel. J'ai une méthode, qui s'appelle du "côté Flutter". Je ne colle pas mes éléments liés à MethodChannel ici, car ils sont triviaux.

Dans mon AppDelegate didFinishLaunchingWithOptions, j'ai ajouté ceci:

let flutterViewController = FlutterViewController()
    self.navigationController = UINavigationController(rootViewController: flutterViewController)
    self.navigationController?.isNavigationBarHidden = true

    self.window = UIWindow(frame: UIScreen.main.bounds)
    self.window.rootViewController = self.navigationController
    self.window.makeKeyAndVisible()

Et ma méthode ouverte comme celle-ci:

private func openNativeUI(result: FlutterResult) {
        let sb = UIStoryboard(name: "Main", bundle: nil)
        let uiController = sb.instantiateViewController(withIdentifier: "nativeui")

        self.navigationController?.pushViewController(uiController, animated: true)

        result(true)
    }

Qu'est-ce que tu penses?

Tout conseil est très apprécié et merci d'avance pour votre aide!

15
Tom

Il existe un AndroidView/UiKitView pour réaliser exactement ce que vous voulez faire. Vous pouvez en savoir plus à ce sujet dans ce tutoriel: https://60devs.com/how-to-add-native-code-to-flutter-app-using-platform-views-ios.html

(Avertissement Je suis assez nouveau sur Flutter et je ne suis pas sûr que ce soit nouveau ou stable. Je ne l'ai jamais utilisé, je l'ai juste trouvé pendant mes recherches.)

0
simonnickel