Flutter 在应用Web视图中,颤振应覆盖以下内容';提交表格时不工作
我正在创建一个颤振应用程序,我有一个页面,我在其中使用InAppWebView打开应用程序内部的浏览器。当导航到其他页面时,我会传递页眉(在网站的移动版本中删除页脚)。但是有一个页面可以显示表单。当我点击submit按钮时,页面会重新加载,但标题不再传输。我如何跟踪并传输标题Flutter 在应用Web视图中,颤振应覆盖以下内容';提交表格时不工作,flutter,dart,webview,Flutter,Dart,Webview,我正在创建一个颤振应用程序,我有一个页面,我在其中使用InAppWebView打开应用程序内部的浏览器。当导航到其他页面时,我会传递页眉(在网站的移动版本中删除页脚)。但是有一个页面可以显示表单。当我点击submit按钮时,页面会重新加载,但标题不再传输。我如何跟踪并传输标题 class _CreateTripScreenState extends State<CreateTripScreen> { InAppWebViewController webView; @overr
class _CreateTripScreenState extends State<CreateTripScreen> {
InAppWebViewController webView;
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: new AppBar(
leading: InkWell(
child: Icon(
Icons.arrow_back,
),
onTap: () {
Navigator.of(context).pushNamedAndRemoveUntil(
'/home',
ModalRoute.withName('/'));
},
),
centerTitle: false,
title: new Text("...."),
),
body: InAppWebView(
initialUrl: 'https://..../login-app?authkey=${globals.authkey}',
initialHeaders: {'SB-app': 'android'},
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
debuggingEnabled: true,
useShouldOverrideUrlLoading: true,
useShouldInterceptAjaxRequest: true,
),
android: AndroidInAppWebViewOptions(
domStorageEnabled: true,
databaseEnabled: true,
),
),
onWebViewCreated: (InAppWebViewController controller) {
webView = controller;
},
onLoadStart: (InAppWebViewController controller, String url) {},
onLoadStop: (InAppWebViewController controller, String url) async {},
shouldOverrideUrlLoading: (InAppWebViewController controller, ShouldOverrideUrlLoadingRequest shouldOverrideUrlLoadingRequest) async {
if (Platform.isAndroid || shouldOverrideUrlLoadingRequest.iosWKNavigationType == IOSWKNavigationType.LINK_ACTIVATED) {
if (shouldOverrideUrlLoadingRequest.url.contains('/driver/') || shouldOverrideUrlLoadingRequest.url.contains('myauto') || shouldOverrideUrlLoadingRequest.url.contains('myautoform')) {
await controller.loadUrl(url: shouldOverrideUrlLoadingRequest.url, headers: {
'SB-app': 'android'
});
};
var urll = shouldOverrideUrlLoadingRequest.url;
var uri = Uri.parse(urll);
if (!["http", "https", "file",
"chrome", "data", "javascript",
"about"].contains(uri.scheme)) {
print(urll);
if (await canLaunch(urll)) {
await launch(
urll,
);
return ShouldOverrideUrlLoadingAction.CANCEL;
}
}
return ShouldOverrideUrlLoadingAction.CANCEL;
}
return ShouldOverrideUrlLoadingAction.ALLOW;
},
),
bottomNavigationBar: BottomBar(),
);
}
}
class\u CreateTripScreenState扩展状态{
inappwebview控制器webView;
@凌驾
void initState(){
super.initState();
}
@凌驾
无效处置(){
super.dispose();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:新的appBar(
引导:InkWell(
子:图标(
Icons.arrow_back,
),
onTap:(){
Navigator.of(context.pushName和removeUntil)(
“/家”,
ModalRoute.withName('/');
},
),
标题:错误,
标题:新文本(“…”),
),
正文:InAppWebView(
初始URL:'https://..../login-app?authkey=${globals.authkey}',
initialHeaders:{'SB-app':'android'},
initialOptions:InAppWebViewGroupOptions(
跨平台:InAppWebViewOptions(
debuggingEnabled:true,
useShouldOverrideUrlLoading:true,
useShouldInterceptAjaxRequest:true,
),
android:AndroidAppWebViewOptions(
domStorageEnabled:true,
databaseEnabled:true,
),
),
onWebViewCreated:(InAppWebViewController){
网络视图=控制器;
},
onLoadStart:(InAppWebViewController控制器,字符串url){},
onLoadStop:(InAppWebViewController控制器,字符串url)异步{},
shouldOverrideUrlLoading:(在AppWebViewController控制器中,shouldOverrideUrlLodingRequest shouldOverrideUrlLodingRequest)异步{
if(Platform.isAndroid | | shouldOverrideUrloadingRequest.iosWKNavigationType==iosWKNavigationType.LINK|已激活){
if(shouldOverrideUrloadingRequest.url.contains('/driver/')| | shouldOverrideUrloadingRequest.url.contains('myauto')| | shouldOverrideUrloadingRequest.url.contains('myautoform')){
wait controller.loadUrl(url:shouldOverrideUrloadingRequest.url,标题:{
“SB应用程序”:“android”
});
};
var urll=shouldOverrideEurlloadingRequest.url;
var uri=uri.parse(urll);
如果(![“http”、“https”、“文件”,
“chrome”、“数据”、“javascript”,
“关于”].contains(uri.scheme)){
打印(urll);
如果(等待canLaunch(urll)){
等待发射(
urll,
);
return ShouldOverrideUrlLoadingAction.CANCEL;
}
}
return ShouldOverrideUrlLoadingAction.CANCEL;
}
return ShouldOverrideUrlLoadingAction.ALLOW;
},
),
bottomNavigationBar:BottomBar(),
);
}
}