open method
Implementation
@override
Future<Map<String, dynamic>> open(
{required String url,
String? title,
bool? animated,
bool? modal,
bool? inExternal}) async {
final context = AppbridgenewPlatform.instance.navigatorKey.currentContext;
if (context == null) {
return {
'code': -1,
'data': false,
'msg': 'BuildContext is null, could not navigate.'
};
}
if (inExternal == true) {
if (await canLaunchUrl(Uri.parse(url))) {
await launchUrl(Uri.parse(url), mode: LaunchMode.externalApplication);
return {'code': 0, 'data': true, 'msg': 'Opened URL externally'};
} else {
return {
'code': -1,
'data': false,
'msg': 'Could not launch $url externally.'
};
}
}
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) {
return Scaffold(
appBar: AppBar(
title: Text(title ?? 'Page'),
),
body: Center(
child: Text(
'Opened internal URL: $url (Modal: $modal, Animated: ${animated ?? true})'),
),
);
},
fullscreenDialog: modal ?? false,
),
);
return {'code': 0, 'data': true, 'msg': 'Opened internal URL'};
}