Repository: flutter
Issue: [url_launcher] Throw exception when clicked on Stop loading button on Safari
Labels: platform-ios,p: url_launcher,package,has reproducible steps,P2,browser: safari-ios,found in release: 3.10,found in release: 3.11,team-ios,triaged-ios

## Steps to Reproduce

1. Device: Iphone 12 Pro Max, iOS: 14.4
2. Open the site that returns 522 error: `Connection timed out`.
```dart
final bool launched = await ul.launch('https://site.com/');
```
3. The site opens inside the app in Safari.
4. Close the site with the `Done` button.

**Expected results:** <!-- what did you want to see? -->
Returns the result immediately without waiting for a response from the site

**Actual results:** <!-- what did you see? -->
The method does not return a result (it waits for execution, which does not occur).

## Steps to Reproduce №2

1. Device: Iphone 12 Pro Max, iOS: 14.4
2. Open the site that returns 522 error: `Connection timed out`.
```dart
final bool launched = await ul.launch('https://site.com/');
```
3. The site opens inside the app in Safari.
4. Close the site with the `Close` button.

**Expected results:** <!-- what did you want to see? -->
Returns the result immediately without waiting for a response from the site

**Actual results:** <!-- what did you see? -->
Controls are missing in Safari. Throws an exception (look in the logs). Returns `NULL`!

<details>
  <summary>Logs</summary>

```console
flutter: SHOUT: 2021-02-09 12:38:42.903939: PlatformException(Error, Error while launching https://site.com/, null, null) [(PlatformException) PlatformException(Error, Error while launching https://site.com/, null, null)]
flutter: #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:582:7)
flutter: #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:159:18)
flutter: <asynchronous suspension>
flutter: #2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:332:12)
flutter: #3      MethodChannelUrlLauncher.launch (package:url_launcher_platform_interface/method_channel_url_launcher.dart:44:21)
flutter: #4      launch (package:url_launcher/url_launcher.dart:95:58)
flutter: #5      URLLauncherProvider.launch (package:flutter_app/core/internal/infrastructure/providers/url_launcher/url_launcher_provider.dart:29:35)
flutter: #6      URLLauncherBloc._launchURL (package:flutter_app/core/internal/presentation/blocs/url_launcher/url_launcher_bloc.dart:80:47)
flutter: <asynchronous suspension>
flutter: #7      URLLauncherBloc._mapURLLaunchedToState (package:flutter_app/core/internal/presentation/blocs/url_launcher/url_launcher_bloc.dart:39:12)
flutter: #8      _$URLLauncherLaunched.map (package:flutter_app/core/internal/presentation/blocs/url_launcher/url_launcher_bloc.freezed.dart:233:23)
flutter: #9      URLLauncherBloc.mapEventToState (package:flutter_app/core/internal/presentation/blocs/url_launcher/url_launcher_bloc.dart:28:18)
flutter: <asynchronous suspension>
flutter: #10     Bloc._bindEventsToStates.<anonymous closure> (package:bloc/src/bloc.dart:231:20)
flutter: #11     Stream.asyncExpand.<anonymous closure>.<anonymous closure> (dart:async/stream.dart:644:30)
flutter: #12     _rootRunUnary (dart:async/zone.dart:1206:13)
flutter: #13     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
flutter: #14     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
flutter: #15     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
flutter: #16     _DelayedData.perform (dart:async/stream_impl.dart:611:14)
flutter: #17     _StreamImplEvents.handleNext (dart:async/stream_impl.dart:730:11)
flutter: #18     _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:687:7)
flutter: #19     _rootRun (dart:async/zone.dart:1182:47)
flutter: #20     _CustomZone.run (dart:async/zone.dart:1093:19)
flutter: #21     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
flutter: #22     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
flutter: #23     _rootRun (dart:async/zone.dart:1190:13)
flutter: #24     _CustomZone.run (dart:async/zone.dart:1093:19)
flutter: #25     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
flutter: #26     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
flutter: #27     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
flutter: #28     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
```

</details>