如何从本机iOS设置初始路由
我正在将颤振模块集成到ios本机项目中,我想从ios本机设置初始路由,但它不起作用,它使用默认路由。 ViewController.swift如何从本机iOS设置初始路由,ios,swift,flutter,dart,Ios,Swift,Flutter,Dart,我正在将颤振模块集成到ios本机项目中,我想从ios本机设置初始路由,但它不起作用,它使用默认路由。 ViewController.swift import UIKit import Flutter class ViewController: UIViewController { let flutterEngine = FlutterEngine(name: "test") override func viewDidLoad() { super.viewDi
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)
}
}
主飞镖
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(),
),
);
}
}
导入“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
最终路线={
“/login”:(上下文)=>login(),
“/home”:(上下文)=>home()
};
@凌驾
小部件构建(构建上下文){
返回材料PP(
路线:_路线,
标题:“应用程序”,//标题ของหน้า
家:脚手架(
// หน้าจอหลัก
appBar:appBar(
标题:文本(“App Navi”),
),
正文:Login(),
),
);
}
}
登录,主文件请在图片中查看,因为stackoverflow无法发布文本“看起来您的帖子主要是代码,请添加更多详细信息。”
此问题现已修复,从颤振1.22开始,可使用以下方法完成: 初始化颤振引擎时:
let flutterEngine = FlutterEngine()
// FlutterDefaultDartEntrypoint is the same as nil, which will run main().
engine.run(
withEntrypoint: FlutterDefaultDartEntrypoint, initialRoute: "/onboarding")
并且,在创建视图控制器
时
let flutterViewController = FlutterViewController(
project: nil,
initialRoute: "/onboarding",
nibName: nil,
bundle: nil)
将代码添加为文本,而不是Screenshots@DilanAnuruddha对不起,我已经编辑了帖子。嗨,如果我的答案对你有用,你可以把它标记为接受。