webView无法正常运行[ERROR:flutter / lib / ui / ui_dart_state.cc(157)]

时间:2020-02-21 17:51:14

标签: android flutter webview

我添加了pubspec.yaml webview_flutter: ^0.3.19+8 我使用Flutter版本1.12.13 + hotfix.8

这是我的代码

import 'package:webview_flutter/webview_flutter.dart';

void main() => runApp(MaterialApp(
  home: app(),
));

class app extends StatefulWidget {
  @override
  _appState createState() => _appState();
}

class _appState extends State<app> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('App mobile'),
      ),
      body: Container(
        constraints: BoxConstraints(maxHeight: 500),
        child: WebView(
          initialUrl: "https://google.com",
        ),
      )
    );
  }
}

但运行后,在white仿真器屏幕中单击,在运行选项卡中,我有这个...

E/flutter ( 9570): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, java.lang.IllegalStateException: Sending touch to an unknown view with id: 1
E/flutter ( 9570):  at io.flutter.plugin.platform.PlatformViewsController$1.onTouch(PlatformViewsController.java:206)
E/flutter ( 9570):  at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.touch(PlatformViewsChannel.java:168)
...

我将不胜感激...

2 个答案:

答案 0 :(得分:0)

我使用了此功能,并且可以正常使用,我想您错过了使用controller

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

class WebViewScreen extends StatefulWidget {
  final String title;
  final String selectedUrl;

  WebViewScreen({@required this.title, @required this.selectedUrl});

  @override
  _WebViewScreenState createState() => _WebViewScreenState();
}

class _WebViewScreenState extends State<WebViewScreen> {
  Completer<WebViewController> _controller = Completer<WebViewController>();
  bool isLoading = true;

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: WebView(
        initialUrl: widget.selectedUrl,
        onWebViewCreated: (WebViewController webViewController) {
          _controller.complete(webViewController);
        },
      ),
    );
  }
}

答案 1 :(得分:-1)

如果您在发布模式下遇到此错误,请检查您的清单文件中的“android.permission.INTERNET”权限。