Repository: flutter
Issue: [WebView] Issue in using Hero with webview and global keys, "Multiple widgets used the same GlobalKey."
Labels: framework,a: animation,p: webview,package,team-ecosystem,has reproducible steps,P2,found in release: 2.2,found in release: 2.5,triaged-ecosystem

Hi, I'm facing an "Multiple widgets used the same GlobalKey."  issue when tried put a global key in 2 webviews that is the same, according this video (https://youtu.be/RA-vLF_vnng?t=281), she said to put a global key in two widgets to prevent flutter to re-render the second one.

I Tried even the Navigator.pushReplacement to avoid duplicate keys, (but in my case, I need to have the possibility to go to previous page)

Here is a full sample, the hero transition works, but the go "back" freezes on my iOS, and the console logs "Multiple widgets used the same GlobalKey."


```dart
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

void main() {
  runApp(StockDetailsPage());
}

class StockDetailsPage extends StatelessWidget {
  const StockDetailsPage({Key key, this.symbol}) : super(key: key);
  final String symbol;

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      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
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: ListView(
        children: <Widget>[
          Container(
            height: 500,
            child: Hero(
              tag: 'Teste',
              child: WebView(
                key: gkey,
                initialUrl: 'https://google.com.br',
                javascriptMode: JavascriptMode.unrestricted,
              ),
            ),
          ),
          RaisedButton(
            child: Text('Go to Page 2'),
            onPressed: () async {
              await Navigator.of(context).push(
                MaterialPageRoute(builder: (context) => PageTwo()),
              );
            },
          ),
          Container(height: 600, color: Colors.red),
        ],
      ),
    );
  }
}

class PageTwo extends StatefulWidget {
  @override
  _PageState createState() => _PageState();
}

class _PageState extends State<PageTwo> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Hero(
        tag: 'Teste',
        child: WebView(
          key: gkey,
        ),
      ),
    );
  }
}

final gkey = GlobalKey();
```
```console
Flutter Doctor
[✓] Flutter (Channel stable, v1.17.1, on Mac OS X 10.14.6 18G103, locale en-US)
    • Flutter version 1.17.1 at /Users/Mycap/documents/flutter
    • Framework revision f7a6a7906b (13 days ago), 2020-05-12 18:39:00 -0700
    • Engine revision 6bc433c6b6
    • Dart version 2.8.2

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/Mycap/Library/Android/sdk
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.2.1, Build version 11B500
    • CocoaPods version 1.8.4

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] Connected device (1 available)
    • iPhone de Hb • 00008020-00113DD222C3002E • ios • iOS 13.3
```

Edit: The code is not formated correctly (pretty), but I think that we can reproduce the issue.
Edit2: The go back action freezes if using the swipe from left to right shortcut on left edge border, ios, using the appbar back button, works, but the exceptions occurs on console.

Any idea?