No estoy preguntando sobre webview. Se trata de la aplicación web Flutter. Necesito volver a una página específica cuando el usuario presiona el botón Atrás que está incorporado en el navegador.

enter image description here

¿Alguna adivinanza?

Recibo este error cuando presiono el botón Atrás

Error: Assertion failed: org-dartlang- 
    sdk:///flutter_web_sdk/lib/_engine/engine/history.dart:110:14 
    _userProvidedRouteName != null
    is not true
        at Object.throw_ [as throw] (http://localhost:8300/dart_sdk.js:4770:11)
        at Object.assertFailed (http://localhost:8300/dart_sdk.js:4721:15)
0
Faslur Rajah 20 abr. 2020 a las 15:04

2 respuestas

La mejor respuesta

onWillPop Navegar a una nueva página

class webScope extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new WillPopScope(
      onWillPop: () async => Navigator.push(context, MaterialPageRoute(builder: (context) => new NewPageWidget())),
      child: Scaffold(
        appBar: new AppBar(
          title: new Text("webScope"),
        ),
      ),
    );
  }
}
0
FloW 20 abr. 2020 a las 13:52

En caso de que no quieras navegar a una nueva página

    @override
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: () async => true,
      child: Scaffold(

        key: _scaffold,
        backgroundColor: Colors.indigo,
        body: Center(
          child: Container(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                registerForm(),
                registerBtn(),
                SizedBox(height: 30,),
                _buildSignInButton()
              ],
            ),
          ),
        ),
      ),
    );
  }
0
Al Mamun 2 jun. 2020 a las 11:36