ios - 如何从原生 iOS 设置初始路由

标签 ios swift flutter dart

我将 Flutter 模块集成到 ios Native 项目中,我想从 ios Native 设置 Initial Route,但它不起作用,它使用默认路由。

ViewController.swift

import UIKit
import Flutter

class ViewController: UIViewController {

    let flutterEngine = FlutterEngine(name: "test")

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        flutterEngine.navigationChannel.invokeMethod("setInitialRoute", arguments:"/home")
        flutterEngine.run();

    }

    @IBAction func handleClick(_ sender: Any) {
        let flutterViewController = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)
        flutterViewController.setInitialRoute("/home")
        self.navigationController?.pushViewController(flutterViewController, animated: true)
    }

}

主要.dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  final _route = <String, WidgetBuilder>{
    "/login": (context) => Login(),
    "/home": (context) => Home()
  };

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      routes: _route,
      title: "App", // Title ของหน้า
      home: Scaffold(
        // หน้าจอหลัก
        appBar: AppBar(
          title: Text("App Navi"),
        ),
        body: Login(),
      ),
    );
  }
}

登录,主页文件请看图片,因为stackoverflow不能发布文本“看起来你的帖子主要是代码;请添加更多细节。”

enter image description here

enter image description here

enter image description here

enter image description here

最佳答案

此问题现已修复,自 起 flutter 1.22 可以使用:
在初始化 flutter 引擎时:

let flutterEngine = FlutterEngine()
// FlutterDefaultDartEntrypoint is the same as nil, which will run main().
engine.run(
  withEntrypoint: FlutterDefaultDartEntrypoint, initialRoute: "/onboarding")
并且,直接在创建 FlutterViewController 时,
 let flutterViewController = FlutterViewController(
    project: nil,
    initialRoute: "/onboarding",
    nibName: nil,
    bundle: nil)

关于ios - 如何从原生 iOS 设置初始路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61052776/

相关文章:

ios - 神秘错误是Xcode?

ios - 从对象数组中检索值

ios - 隐藏工具栏并增加主屏幕 View 高度

arrays - 填充 UITableViewController

ios - Swift AVPlayer 不出现,只有声音

flutter - 无法将参数类型Future <bool>分配给参数类型 'bool'

android - Flutter Firebase Messaging 无法创建服务 io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService

ios - 更新到最新版本的 CocoaPods?

ios - 将图像添加到 UIAlertController

flutter - 我怎样才能得到文本的宽度和高度?