flutter InAppWebView路由导航处理,有以下两种处理方案:
- H5层控制路由,H5拥有自己的路由,当返回到跟路由root时,此时点击跟节点,通过jsbridge调用flutter提供的方法来关闭当前widget,flutter关闭方法如下:
value.addJavaScriptHandler(handlerName: "closeInAppWebView",callback: (args) {//关闭当前widget Navigator.pop(context);});
- flutter层控制路由,通过InAppWebViewController中canGoBack()判断是否可以返回,可以返回调用goBack(),否则关闭当前widget。代码如下:
if (await inAppWebViewController!.canGoBack()) {//返回路由上一层inAppWebViewController!.goBack(); } else {//关闭当前widgetNavigator.pop(context); }