0

我正在使用 WebviewScaffold。Android 设备后退按钮按预期工作,即如果我不与 Webview 内容交互,它将退出应用程序。但是,在 Webview 内部触摸时 - 设备后退按钮不起作用 - 我被困在 Webview 页面上。通过 WillPopScope 检查,我可以看到 Navigator.canPop 在两种情况下都返回 false - 因此应用程序没有任何东西可以路由回,但它仍然停留在 Web 视图页面上,而不是在第二个实例中退出。任何帮助,将不胜感激。

示例代码如下所示。

重现步骤

  1. 在安卓上运行
  2. 当 Web 视图加载时,使用设备后退按钮 - 这会退出应用程序
  3. 再次运行,这次触摸网页视图页面内部
  4. 使用设备后退按钮,现在卡住了,不退出应用程序

import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return WebviewScaffold(
      url: 'https://www.google.co.uk',
    );
    /*return WillPopScope(
      onWillPop: () async {
        var canPop = Navigator.canPop(context);
        print(canPop);
        return true;
      },
      child: WebviewScaffold(
        url: 'https://www.google.co.uk',
      ),
    );*/
  }
}

发布规范.yaml

name: webview_scaffold_test
description: A new Flutter project.

publish_to: 'none' 

version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter_webview_plugin: ^0.3.0+2
  flutter:
    sdk: flutter
  
  cupertino_icons: ^1.0.1

dev_dependencies:
  flutter_test:
    sdk: flutter
  integration_test:
    sdk: flutter

flutter:
  
  uses-material-design: true

4

0 回答 0