webview_flutter: ^4.2.1 Android端WebView内链接跳转失效求助
解决webview_flutter 4.2.1 Android端内部链接跳转失效问题
针对你遇到的Android端WebView内部链接跳转失效、iOS正常的情况,可通过以下方式修复:
- 拦截新窗口请求
Android端WebView默认不会处理target="_blank"这类新窗口跳转请求,需要在NavigationDelegate中添加onCreateWindow回调,强制用当前WebView加载目标链接:
controller.setNavigationDelegate(NavigationDelegate( onPageStarted: (String url) { print('url loading : $url'); BlocProvider.of<BrokerDashboardBloc>(context) .add(OnUrlLoadStartEvent()); }, onWebResourceError: (WebResourceError error) { print("error : ${error.description}"); }, onPageFinished: (String url) { BlocProvider.of<BrokerDashboardBloc>(context).add(OnUrlLoadEndEvent()); }, onNavigationRequest: (NavigationRequest request) { return NavigationDecision.navigate; }, // 添加这个回调处理新窗口跳转 onCreateWindow: (CreateWindowRequest request) async { await controller.loadRequest(Uri.parse(request.url)); return true; }, onUrlChange: (UrlChange change) {}, ));
- 验证网页链接属性
检查网页内的链接是否带有target="_blank"属性,这类链接在Android端会触发新窗口请求,必须通过上述回调拦截处理才能实现内部跳转。
内容的提问来源于stack exchange,提问作者Navjot Kumar
相关产品推荐
相关产品推荐

