Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在应用Web视图中,颤振应覆盖以下内容';提交表格时不工作_Flutter_Dart_Webview - Fatal编程技术网

Flutter 在应用Web视图中,颤振应覆盖以下内容';提交表格时不工作

Flutter 在应用Web视图中,颤振应覆盖以下内容';提交表格时不工作,flutter,dart,webview,Flutter,Dart,Webview,我正在创建一个颤振应用程序,我有一个页面,我在其中使用InAppWebView打开应用程序内部的浏览器。当导航到其他页面时,我会传递页眉(在网站的移动版本中删除页脚)。但是有一个页面可以显示表单。当我点击submit按钮时,页面会重新加载,但标题不再传输。我如何跟踪并传输标题 class _CreateTripScreenState extends State<CreateTripScreen> { InAppWebViewController webView; @overr

我正在创建一个颤振应用程序,我有一个页面,我在其中使用InAppWebView打开应用程序内部的浏览器。当导航到其他页面时,我会传递页眉(在网站的移动版本中删除页脚)。但是有一个页面可以显示表单。当我点击submit按钮时,页面会重新加载,但标题不再传输。我如何跟踪并传输标题

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(),
);
}
}