由于项目之前是flutter开发的,现在需要用原生开发新的板块,牵扯到从flutter跳转到新版块,所以学习了下,记录起来。
1.在要跳转到原生界面的flutter页面中,加入
// 创建一个给native的channel (类似iOS的通知)
const nativeChannel = const MethodChannel('flutter_native');
然后再点击跳转的按钮事件中
_iosGetMap() async {
debugPrint('-------------进入前台跳转成功跳转成功----------------- ');
//invokeMethod:两个参数Method:方法名(两端要统一),arguments:此方法名下需要传的参数
await nativeChannel.invokeMethod('pushSquarePage');
}
2.在iOS的AppDelegate中
FlutterViewController* controller = (FlutterViewController*)self.window.rootViewController;
FlutterMethodChannel *Wchannel =
[FlutterMethodChannel methodChannelWithName:@"flutter_native"
binaryMessenger:controller.binaryMessenger];
[WchannelsetMethodCallHandler:^(FlutterMethodCall * _Nonnull call, FlutterResult _Nonnull result) {
NSLog(@"---->call.method=%@ \n call.arguments = %@", call.method, call.arguments);
if([@"pushSquarePage"isEqualToString:call.method]) {
//这里写跳转到某个页面的方法
}
}];
安卓的跳转没有写,也是差不多的,flutter那边可以共用,只是在自己原生代码写的不一样而已,只要名字确定没问题。