i am done with communication between flutter to native code using MethodChannel. Its bridge between flutter to native done but when i try to redirection of Native Screen to Flutter screen its not redirect. I am using Navigator push method to redirect screen. Please check below code :
class MyHomePage extends StatelessWidget {
BuildContext mcontext;
static const platform = const MethodChannel(
'flutter.rortega.com.basicchannelcommunication');
final String title;
MyHomePage({Key key, this.title}) : super(key: key) {
platform.setMethodCallHandler(_handleMethod);
}
@override
Widget build(BuildContext context) {
mcontext = context;
return new Scaffold(
appBar: new AppBar(
title: new Text(title),
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new RaisedButton(
child: new Text('Show native view'),
onPressed: _showNativeView,
),
],
),
),
);
}
Future<Null> _showNativeView() async {
await platform.invokeMethod('showNativeView', {"text": "Maulik"});
}
Future<dynamic> _handleMethod(MethodCall call) async {
switch (call.method) {
case "message":
String alice = call.arguments['message'];
print(alice);
pushPreviewScreen(mcontext);
}
}
pushPreviewScreen(BuildContext mcontext) {
print("calledFunction::");
Navigator.push(
mcontext,
MaterialPageRoute(builder: (context) => SecondScreen()),
);
}
}
Here "calledFunction::" print in console but not redirect in SecondScreen().