showModelSheet static method
Future<bool>
showModelSheet(
- BuildContext context,
- String url,
- String success_url,
- String cancel,
- String? redirect_url,
Implementation
static Future<bool> showModelSheet(BuildContext context, String url,
String success_url, String cancel, String? redirect_url) async {
bool processed = false;
WebViewController controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setBackgroundColor(const Color(0x00000000))
..setNavigationDelegate(
NavigationDelegate(
onProgress: (int progress) {
// Update loading bar.
},
onPageStarted: (String url) {},
onPageFinished: (String url) {},
onWebResourceError: (WebResourceError error) {},
onNavigationRequest: (NavigationRequest request) {
if (request.url.startsWith(success_url) ||
request.url.startsWith(cancel)) {
Navigator.of(context).pop();
if ((request.url.startsWith(success_url)) ||
(redirect_url != null &&
request.url.startsWith(redirect_url))) {
processed = true;
} else {
processed = false;
}
return NavigationDecision.prevent;
}
return NavigationDecision.navigate;
},
),
)
..loadRequest(Uri.parse(url));
await showModalBottomSheet(
context: context,
useSafeArea: true,
elevation: 4,
enableDrag: false,
isScrollControlled: true,
builder: (builder) {
return new Container(
height: MediaQuery
.of(context)
.size
.height * 0.85,
decoration: new BoxDecoration(
color: Colors.white,
borderRadius: new BorderRadius.only(
topLeft: const Radius.circular(20.0),
topRight: const Radius.circular(20.0))),
child: WebViewWidget(controller: controller),
);
},
);
return processed;
}