fluttercommunity / flutter_webview_plugin

Community WebView Plugin - Allows Flutter to communicate with a native WebView.
https://pub.dev/packages/flutter_webview_plugin
Other
1.48k stars 929 forks source link

Using WebviewScaffold to load URLs doesn't work in iOS #969

Open kumarg2161 opened 7 months ago

kumarg2161 commented 7 months ago

System info

Issue occurs on: iOS Plugin version: 0.4.0 Flutter doctor output:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.16.2, on macOS 14.1.2 23B92 darwin-arm64, locale en-IN)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.1)
[✓] Connected device (2 available)
[✓] Network resources

• No issues found!

Steps to Reproduce

  1. I am using the WebViewScaffold to launch a URL. This approach works fine on Android and the page is loaded. However, on iOS, it gives a white blank screen.
  2. Followed all the steps mentioned in the documentation and the key "NSAppTransportSecurity" is added to the Info.plist file as recommended in the documentation.
  3. The iOS app launches the URL and works fine if we use an instance of the FlutterWebViewPlugin to call the "launch()" method instead of the WebViewScaffold implementation.
  4. There are no errors logged on the console while running it.
  5. Here is the code that renders the view inside a StatefulWidget
...
return SafeArea(
      child: WebviewScaffold(
        url: _url,
        mediaPlaybackRequiresUserGesture: false,
        useWideViewPort: true,
        appCacheEnabled: true,
        geolocationEnabled: true,
        invalidUrlRegex:
     r'^(https:\/\/api\.whatsapp\.com|https:\/\/apps\.apple\.com|https:\/\/play\.google\.com|tel:|mailto:|https:\/\/www\.facebook\.com|https:\/\/www\.youtube\.com|https:\/\/www\.instagram\.com)',
        debuggingEnabled: true,
      ),
    );

Logs