Skip to content
CAI
Software that uses CAICheck a score

pichillilorenzo/flutter_inappwebview

46.6

Weak · 23 September 2026

181.2k

lines of production code

Dart

with C++, Swift, Java, C

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a federated Flutter plugin that provides cross-platform in-app webview and browser capabilities across Android, iOS, macOS, Windows, Linux, and Web. It enables developers to render web content, manage cookies and storage, handle authentication, and execute JavaScript through a unified Dart API backed by native platform implementations. The repository also includes a comprehensive example application that serves as an interactive testing suite for these features, complete with automated integration tests and debugging tools.

How it got here

2018–2023 — Federated platform expansion and rebranding

41 changes.

The project underwent a major rebranding from flutter\_inappbrowser to flutter\_inappwebview, accompanied by a complete architectural shift to a federated plugin structure. This period focused on implementing native support for Linux, Web, macOS, iOS, and Android while removing legacy code and establishing robust cross-platform infrastructure.

2024–2026 — multi-platform expansion and example overhaul

26 changes.

The project introduced native support for Windows, Linux, and macOS, extending the plugin's reach to desktop and web environments. Concurrently, the example application was significantly refactored to include comprehensive testing infrastructure, interactive debugging tools, and detailed API documentation screens.

Features

Add macOS support for in-app browser, headless webview, and credential management

This change introduces the native macOS implementation for the flutter\_inappwebview plugin, adding support for in-app browsers, headless webviews, and HTTP authentication credential storage. It includes the \InAppBrowserManager\ and \InAppBrowserWindow\ to handle opening browser windows with customizable toolbars, navigation controls, and menu items, as well as the \HeadlessInAppWebView\ and \HeadlessInAppWebViewManager\ to run webviews in the background without a visible UI. Additionally, it adds \CredentialDatabase\ to manage HTTP authentication credentials via the platform's credential store, and \FindInteractionController\ to support text search functionality within webviews.

_flutter\_inappwebview\macos/macos · high confidence

Added Android example app for flutter\_inappwebview

The flutter\_inappwebview\_android package now includes a complete example application demonstrating how to use the Android-specific InAppWebView widget. This example showcases key features such as pull-to-refresh, URL loading with scheme handling, permission requests, and progress indicators, providing a reference implementation for developers integrating the plugin.

_flutter\_inappwebview\android/example · high confidence

Added CI/CD and testing automation scripts

The repository now includes a suite of shell and PowerShell scripts to streamline the build, test, and release processes. New additions include \android-wait-for-emulator.sh\ to handle emulator readiness, \publish.sh\ to automate code formatting and package publishing, and \test.sh\/\test.ps1\ to orchestrate integration tests across different platforms. Logging variants (\test\_and\_log.sh\ and \test\_and\_log.ps1\) are also provided to capture test output for debugging purposes.

scripts · high confidence

Added Linux desktop support to the example app

The example application now includes a complete Linux desktop implementation, enabling users to build and run the app on Linux. This addition provides the necessary CMake build configuration, GTK-based native runner code, and plugin registration to support the flutter\_inappwebview and url\_launcher plugins on the Linux platform.

_flutter\inappwebview/example/linux · high confidence

Added macOS example app scaffolding

The macOS example project has been initialized with the standard Flutter Runner structure, including the Xcode project, workspace, and scheme configurations. This update introduces the core application entry points (AppDelegate and MainFlutterWindow) and configures the GeneratedPluginRegistrant to automatically register dependencies such as file\_picker, flutter\_inappwebview\_macos, shared\_preferences\_foundation, and url\_launcher\_macos. Additionally, the app bundle is configured with necessary entitlements for sandboxing, camera, microphone, and network access, along with Info.plist keys to support these features.

_flutter\_inappwebview/example/macos, flutter\_inappwebview\android/example/android · high confidence

Added macOS example application for flutter\_inappwebview\_macos

The \flutter\_inappwebview\_macos/example\ directory now includes a complete macOS example application. This provides a runnable demo that showcases the \flutter\_inappwebview\_macos\ plugin, featuring a web view with navigation controls, URL input, and permission handling. The addition includes the necessary macOS project structure (Xcode project, Swift runner, and configuration files) to build and test the plugin on macOS.

_flutter\_inappwebview\macos/example · high confidence

Added offline dinosaur game assets

The package now includes the HTML, CSS, and JavaScript files for the Chrome offline dinosaur game (t-rex runner) in the \lib/assets/t\_rex\_runner/\ directory. This adds the static assets required to render the offline error page easter egg within the webview.

_flutter\inappwebview/lib · high confidence

Added tool script to generate integration test environment configuration

A new Dart script at tool/env.dart was added to automate the creation of the integration test environment file. When executed, this script reads the NODE\_SERVER\_IP from the system environment and writes it to flutter\_inappwebview/example/integration\_test/env.dart, ensuring the integration tests have the correct server address configured.

tool · high confidence

Added web platform example app for flutter\_inappwebview\_web

The flutter\_inappwebview\_web/example directory now includes a complete Flutter application demonstrating the web implementation of the inappwebview plugin. This example app features a functional UI with a URL input field, navigation controls (back, forward, refresh), and a WebView widget that displays web content, allowing users to test the plugin's capabilities in a web environment.

_flutter\_inappwebview\web/example · high confidence

Android platform implementation for federated plugin

The \flutter\_inappwebview\_android\ package now provides the concrete Android implementation for the federated \flutter\_inappwebview\ plugin. This change introduces the Android-specific classes for the core WebView, In-App Browser, and ChromeSafariBrowser, along with dedicated controllers for cookie management, HTTP authentication credentials, and find interaction. It also includes the necessary method channel wiring to bridge Flutter calls to the native Android WebView engine.

_flutter\_inappwebview\android/lib · high confidence

Example app gains comprehensive testing and settings configuration utilities

The example application now includes a robust set of utility files to support an integrated testing interface and detailed settings management. A new test registry and constants define test categories (navigation, JavaScript, content, etc.) and complexity levels, while a controller methods registry organizes WebView controller actions by category for easier discovery and execution. Additionally, new definitions for environment and WebView settings provide structured metadata for configuration options, and support checkers enable platform-specific API validation across Android, iOS, macOS, Windows, Linux, and Web.

_flutter\inappwebview/example/lib/utils · high confidence

Flutter InAppWebView 6.2.0-beta.3: Linux support and runtime capability checks

This release adds initial Linux support using WPE WebKit and introduces runtime platform capability checks via \isClassSupported\, \isPropertySupported\, and \isMethodSupported\ methods on the main controller and settings classes. It also includes a new \getFavicon\ wrapper, fixes for AJAX request interception, and updates to minimum SDK requirements (Dart 3.8.0, Flutter 3.32.0).

_flutter\inappwebview · high confidence

Initial Linux example application for flutter\_inappwebview\_linux

This change introduces the complete example application for the Linux platform support of the flutter\_inappwebview\_linux plugin. It includes the Flutter Dart code (main.dart) demonstrating InAppBrowser usage, integration tests, and the native Linux runner (CMake, GTK application setup) required to build and run the example on Linux.

_flutter\_inappwebview\linux/example · high confidence

Initial Linux implementation for flutter\_inappwebview

This release introduces the first native Linux backend for the flutter\_inappwebview plugin, enabling in-app webviews on Linux desktops. The implementation relies on WPE WebKit, automatically detecting and preferring the modern WPEPlatform API (WPE WebKit 2.40+) while falling back to the legacy WPEBackend-FDO for older systems. It includes full support for content blocking (using Safari-compatible JSON rules), secure HTTP authentication credential storage via libsecret, cookie management, and in-page text search. The build system (CMake) is configured to detect these dependencies and enable hardware-accelerated rendering optimizations (NEON on ARM64, SSSE3/SSE2 on x86\_64).

_flutter\_inappwebview\linux/linux · high confidence

Initial Linux platform implementation for Flutter InAppWebView

This release introduces the first complete Linux implementation for the flutter\_inappwebview package, enabling web views and in-app browsers on Linux desktop applications. The new platform support includes a full suite of controllers and managers: \LinuxInAppWebViewController\ and \LinuxInAppBrowser\ for rendering and managing web content, \LinuxCookieManager\ for handling browser cookies, \LinuxFindInteractionController\ for text search functionality, and \LinuxHttpAuthCredentialDatabase\ for secure storage of HTTP authentication credentials using the system keyring. Additionally, \LinuxWebStorage\ provides access to local and session storage, while the \CustomPlatformViewController\ handles the underlying platform view integration and cursor mapping. This allows developers to use the same Dart API for web view features across Linux as they do on Android and iOS.

(repo-wide) · high confidence

Initial Windows platform support for flutter\_inappwebview

This change introduces the Windows native implementation for the flutter\_inappwebview plugin, enabling the use of InAppWebView and InAppBrowser widgets on Windows desktop. The diff establishes the core C++ plugin infrastructure, including the WebView environment manager, cookie manager, and find interaction controller, while wiring up the example application to demonstrate these capabilities.

_flutter\_inappwebview\windows/windows · high confidence

Initial Windows support for the inappwebview example app

The example application now includes a native Windows runner, enabling users to build and run the inappwebview demo on Windows. This adds the necessary CMake build configuration, a Win32 window host with high-DPI and dark-mode support, and the Flutter plugin registrant that wires up the flutter\_inappwebview\_windows, permission\_handler\_windows, and url\_launcher\_windows plugins.

_flutter\inappwebview/example/windows · high confidence

Initial release of Linux WPE WebKit implementation

This entry introduces the Linux platform support for the flutter\_inappwebview plugin, implemented using the WPE WebKit engine. The package is an endorsed federated plugin, meaning it is automatically included when using flutter\_inappwebview on Linux, allowing users to run in-app webviews on Linux desktops and embedded systems without additional configuration. The implementation leverages WPE WebKit for offscreen rendering, supporting both the modern WPEPlatform API (default) and the legacy WPEBackend-FDO as a fallback, and includes necessary project metadata, licensing, and analysis options to integrate into the Flutter ecosystem.

_flutter\_inappwebview\linux · high confidence

Initial release of internal annotations package

The \flutter\_inappwebview\_internal\_annotations\ package has been added to the repository to support the plugin's code generation system. This new internal library provides the foundational annotation classes (such as \ExchangeableObject\, \ExchangeableEnum\, and \SupportedPlatforms\) and platform constants that the generator uses to create platform-specific implementations. It establishes the metadata structure required for the plugin's cross-platform compatibility logic.

_dev\_packages/flutter\_inappwebview\_internal\annotations · high confidence

Initial release of the federated Android implementation

This change introduces the \flutter\_inappwebview\_android\ package as a new federated platform implementation for the \flutter\_inappwebview\ plugin. It includes the initial Android native code structure, configuration files (such as \.gitignore\, \analysis\_options.yaml\, and \build.yaml\), and documentation. The package is endorsed, meaning it is automatically included when using the main plugin, and establishes the baseline version 1.0.0 for the Android-specific WebView logic.

_flutter\_inappwebview\android · high confidence

Initial release of the iOS platform implementation for flutter\_inappwebview

This entry introduces the \flutter\_inappwebview\_ios\ package, the iOS-specific implementation for the federated \flutter\_inappwebview\ plugin. The diff establishes the foundational structure for this platform channel, including the \CHANGELOG.md\ (starting at version 1.2.0-beta.3), \LICENSE\, \README\, and build configuration files (\analysis\_options.yaml\, \build.yaml\). While the code diff itself only shows these metadata and configuration files, the changelog documents the behavioral changes and features implemented within this iOS module, such as Swift Package Manager support, proxy support, state save/restore methods, and fixes for JavaScript callback handlers and AJAX request interception.

(repo-wide) · high confidence

Initial web platform support for InAppWebView JavaScript bridge and user scripts

This change introduces the web implementation for the InAppWebView plugin, enabling JavaScript bridge communication and user script injection within web-based in-app browsers. It adds the core \index.ts\ and \types.ts\ files that define the \InAppWebView\ interface and settings, including \javaScriptBridgeEnabled\, \javaScriptBridgeOriginAllowList\, and \UserScript\ configurations. The implementation handles creating iframes, managing JavaScript bridge handlers with origin allow-lists, injecting user scripts at document start or end, and forwarding console messages and history updates to the native layer via \\_nativeCommunication\.

_web\support · high confidence

Introduced code generators for exchangeable objects, enums, and platform support

Added a new \dev\_packages/generators\ package containing build-time code generators (\ExchangeableObjectGenerator\, \ExchangeableEnumGenerator\, and \SupportedPlatformsGenerator\) that automatically produce Dart source files from annotated classes. These generators handle the creation of exchangeable object and enum implementations, as well as runtime platform support checks (e.g., \isClassSupported\, \isPropertySupported\), reducing manual boilerplate for cross-platform compatibility.

_dev\packages/generators · high confidence

New data models for the example app's settings, testing, and navigation features

The example app now includes a comprehensive set of new data models in the \lib/models\ directory to support its expanded functionality. These include \SettingDefinition\ and \EnvironmentSettingDefinition\ for defining and validating WebView settings with platform support checks, \SettingsProfile\ and \WebViewEnvironmentProfile\ for saving and loading configuration profiles, and a robust testing framework with \TestCase\, \TestConfiguration\, \TestResult\, and \ExecutableTestCase\ models to define, execute, and report on automated tests. Additionally, new models like \NavigationSection\ for app routing, \NetworkRequest\ for logging network activity, \EventLogEntry\ for event tracking, and \PerformanceMetric\ for performance monitoring have been added to enhance the example app's diagnostic and user experience capabilities.

_flutter\inappwebview/example/lib/models · high confidence

New example app screens for testing, settings, and platform info

The example application now includes a comprehensive set of new screens to explore and test InAppWebView capabilities. The HomeScreen provides a dashboard to navigate test categories (Navigation, JavaScript, Content, Storage, Advanced, Browsers), while the CategoryScreen lists specific tests with platform filtering. A new WebViewTesterScreen allows interactive testing with resizable web views, event logs, and network monitoring. Additionally, SettingsEditorScreen and WebViewEnvironmentSettingsEditorScreen offer detailed UIs for configuring and managing InAppWebView and environment-specific settings profiles, and the PlatformInfoScreen displays device and framework details along with supported feature checks.

_flutter\inappwebview/example/lib/screens · high confidence

New example screens for API support matrix and controller testing

The example app now includes dedicated screens for exploring API availability and testing advanced controllers. The Support Matrix screen displays a comprehensive table of all InAppWebView APIs with platform-specific availability (Android, iOS, macOS, Web, Windows, Linux) and allows filtering by platform or search terms, with an option to export the matrix as Markdown. The Platform Comparison screen enables side-by-side comparison of API support between any two platforms, highlighting common, unique, and differing methods and events. Additionally, new screens for Controllers and Service Controllers provide interactive testing interfaces for WebView controllers (such as FindInteractionController and PullToRefreshController) and service-level controllers (including ServiceWorkerController, ProxyController, TracingController, and WebViewEnvironment), allowing developers to verify functionality and view method result histories directly within the example app.

_flutter\inappwebview/example/lib/screens/advanced · high confidence

The example app now includes dedicated UI screens for testing and managing browser storage features. The new Cookie Manager screen allows users to view, search, sort, and set cookies via the CookieManager API. The HTTP Auth screen provides a way to manage HTTP authentication credentials stored in the HttpAuthCredentialDatabase, including adding, retrieving, and removing credentials for specific protection spaces. Additionally, the Web Storage screen offers a tabbed interface to interact with LocalStorage and SessionStorage, enabling users to load URLs, view storage items, check lengths, and manage origins via the WebStorageManager.

_flutter\inappwebview/example/lib/screens/storage · high confidence

New interactive debugging and testing tools in the example app

The example app now includes several new widgets in the webview section to help developers test and debug InAppWebView features. A Method Tester allows interactive execution of controller methods (like loadUrl, postUrl, loadData) with parameter configuration and history tracking. A Static Method Tester provides similar testing capabilities for static methods across various classes (InAppWebViewController, InAppBrowser, ChromeSafariBrowser, etc.). A JavaScript Console enables running JavaScript code in the WebView and viewing results. A Network Monitor displays and filters network requests with details like status codes, headers, and timing. An Event Console logs and filters WebView events by type (navigation, javascript, console, network, etc.). A User Script Tester allows adding and managing user scripts with configurable injection times and frame scope.

_flutter\inappwebview/example/lib/widgets/webview · high confidence

New responsive settings tile widget for example app

The example application now includes a new \ResponsiveSettingTile\ widget in the settings UI. This component adapts its layout based on screen size, displaying settings in a row format on mobile devices and a column format on larger screens, improving the usability of the example's settings page across different devices.

_flutter\inappwebview/example/lib/widgets/settings · high confidence

New test automation UI for creating and configuring custom test steps

The example app now includes a dedicated interface for building and editing custom test steps. The new \CustomTestStepDialog\ allows users to define step metadata (name, description, category), select action types (such as evaluating JavaScript, waiting for navigation events, or invoking controller methods), and configure specific parameters like URLs, selectors, and delays. Supporting this is the \MethodSelectorWidget\, which provides a searchable, categorized list of available controller methods and enables inline configuration of their parameters, streamlining the process of defining complex test scenarios within the example application.

_flutter\_inappwebview/example/lib/widgets/test\automation · high confidence

Platform interface for ChromeSafariBrowser and its settings

The platform interface now exposes the \PlatformChromeSafariBrowser\ class along with \ChromeSafariBrowserSettings\ and related types (action buttons, menu items, secondary toolbar) for configuring native Chrome Custom Tabs on Android and SFSafariViewController on iOS. This provides the foundational API layer that platform-specific implementations (Android, iOS, macOS, Windows, Linux, Web) will use to manage these external browser windows.

_flutter\_inappwebview\_platform\interface/lib · high confidence

Platform interface version 1.4.0 introduces extensive new WebView capabilities and settings

The \flutter\_inappwebview\_platform\_interface\ has been updated to version 1.4.0-beta.3, significantly expanding the available WebView controls and events. Users can now configure advanced settings such as Intelligent Tracking Prevention (\itpEnabled\), dark mode (\darkMode\), and various font rendering options via \InAppWebViewSettings\. New controller methods allow for state management (\saveState\, \restoreState\), fullscreen and pointer lock requests, and favicon retrieval. The interface also exposes new WebView events for file picking (\onShowFileChooser\), favicon changes (\onFaviconChanged\), and notification handling (\onNotificationReceived\), alongside a new \PlatformWebNotificationController\ class. Additionally, runtime support checking is now available via \isClassSupported\, \isPropertySupported\, and \isMethodSupported\ static methods on main classes.

_flutter\_inappwebview\_platform\interface · high confidence

Web platform implementation for InAppWebView

This change introduces the web platform implementation for the flutter\_inappwebview plugin, located in the flutter\_inappwebview\_web package. It adds the core classes required to run InAppWebView on web targets, including WebPlatformInAppWebViewWidget, WebPlatformHeadlessInAppWebView, and WebPlatformInAppWebViewController. The controller implements the necessary method channel communication (using the 'com.pichillilorenzo/flutter\_inappwebview\_manager' static channel) to handle WebView lifecycle events (such as onLoadStart, onLoadStop, onCreateWindow, onCloseWindow), JavaScript execution, and user script injection, effectively enabling the plugin to function on web browsers.

_flutter\_inappwebview\_ios/lib, flutter\_inappwebview\_web/lib/src/in\_app\_webview, flutter\_inappwebview\web/lib/web · high confidence

Web platform implementation for InAppWebView storage APIs

The web platform now supports local and session storage operations within the in-app webview. This change introduces the \WebPlatformWebStorage\ and \WebPlatformStorage\ classes, which bridge Flutter calls to the browser's JavaScript storage API. Users can now read, write, remove, and clear items in local and session storage via the standard platform interface, with values automatically serialized and deserialized using JSON.

_flutter\_inappwebview\_web/lib/src/web\storage · high confidence

iOS implementation for credentials, find interaction, headless, and in-app browser

The iOS native layer for flutter\_inappwebview now includes dedicated Swift implementations for credential management, text search, headless web views, and the in-app browser UI. CredentialDatabase handles HTTP authentication credentials via the shared URLCredentialStorage. FindInteractionController and its channel delegate expose text search capabilities, leveraging native iOS 16+ find interaction APIs when available and falling back to JavaScript injection on older versions. HeadlessInAppWebView and its manager allow running web views in the background, ensuring reliable execution by attaching the view to the window hierarchy with minimal opacity. InAppBrowserManager and its associated view controllers and settings provide the native UI for presenting in-app browsers, including support for opening URLs in the system browser, configuring toolbars, and handling navigation.

_flutter\_inappwebview\ios/ios · high confidence

Removals

Removal of legacy Android InAppBrowser implementation

The legacy Android implementation files for the InAppBrowser plugin, specifically InAppBrowser.java and InAppBrowserClient.java, have been removed from the source code. This change eliminates the previous WebView-based browser logic and its associated event handling (such as loadstart, loadstop, and custom scheme interception) from the Android module, indicating a migration to a different underlying architecture or a complete rewrite of the Android-specific browser component.

android/src/main/java, ios · high confidence

Removal of legacy InAppBrowser class and MethodChannel interface

The legacy \InAppBrowser\ class, which previously exposed a direct \MethodChannel\ interface for opening browsers, injecting scripts, and handling load events, has been removed from the library. This deletion eliminates the old procedural API in favor of the plugin's modern, structured class hierarchy, requiring users to migrate to the current browser management and event handling patterns.

lib · high confidence

Removal of legacy InAppBrowser example code

The \example/lib/main.dart\ file has been deleted, removing the previous demonstration of the \InAppBrowser\ class. This example previously showed how to open a browser window to \https://flutter.io/\ and inject external jQuery and Bootstrap resources upon load completion. Its removal indicates that this specific usage pattern is no longer supported or maintained in the example application.

example/lib · high confidence

Removed iOS example project file

The Xcode project file (\project.pbxproj\) for the iOS example app has been deleted, removing the build configuration and source references for the \Runner\ target.

example/ios · high confidence

Removed legacy Android example app files

The example Android application's main manifest and Java MainActivity class have been deleted. This removes the legacy Android setup that relied on the old \io.flutter.app.FlutterActivity\ and \GeneratedPluginRegistrant\, aligning the example with modern Flutter embedding standards where these are no longer required.

example/android · high confidence

Behavioural changes

Android module restructured with new package name and explicit activity declarations

The Android native code for flutter\_inappwebview has been reorganized into a dedicated module with the package name com.pichillilorenzo.flutter\_inappwebview\_android. This change introduces an explicit AndroidManifest.xml that declares the InAppBrowserActivity and several Chrome Custom Tabs activities (including TrustedWebActivity and single-instance variants) as non-exported, alongside a new FileProvider and ProGuard rules to preserve JavaScript interfaces and bridge classes. The plugin now uses the modern Flutter embedding engine, managing managers for cookies, web storage, and custom tabs via method channels, which ensures better lifecycle handling and compatibility with current Android embedding standards.

_flutter\_inappwebview\android/android · high confidence

Example app UI refactored with reusable common widgets

The example app's user interface has been restructured to use a shared library of common widgets located in the \widgets/common\ directory. This change introduces reusable components such as \AppDrawer\ for navigation, \MethodCard\ and \MethodTile\ for displaying API methods with platform support badges and result history, \ParameterDialog\ for handling complex input parameters, and \EventLogCard\ for debugging. Additional utilities like \EmptyState\, \StatusCard\, \ProfileSelectorCard\, and \ResponsiveRow\ provide consistent styling and responsive layouts across the test suite screens.

_flutter\inappwebview/example/lib/widgets/common · high confidence

Example app restructured and renamed to flutter\_inappwebview

The example application has been moved into the flutter\_inappwebview directory and renamed from flutter\_inappbrowser\_example to flutter\_inappwebview\_example. This change includes updated project metadata, analysis options, and devtools configuration to align with the new package identity, along with a renamed README that now demonstrates usage of the flutter\_inappwebview plugin instead of the previous browser plugin.

_flutter\inappwebview/example · high confidence

Example app restructured with provider-based state management and comprehensive routing

The example application's entry point has been refactored to use the Provider package for state management, introducing dedicated providers for event logging, settings, test running, and network monitoring. The app now features a centralized routing configuration that exposes a wide range of screens for testing WebView features, including browser variants (InApp, ChromeSafari, Headless), storage management (Cookies, WebStorage, HTTP Auth), advanced controllers, and test automation tools.

_flutter\inappwebview/example/lib · high confidence

Example app screens updated to use API name literals

The example application's browser screens (ChromeSafariBrowser, HeadlessInAppWebView, and InAppBrowser) have been refactored to replace hardcoded string literals for API names and event methods with their corresponding enum \.name\ properties (e.g., \PlatformChromeSafariBrowserEventsMethod.onOpened.name\). This change ensures that the example code remains consistent with the library's internal API naming conventions and reduces the risk of errors from manual string maintenance.

_flutter\inappwebview/example/lib/screens/browsers · high confidence

Example app updated for Flutter 3.24 and v2 embedding

The Android example project has been updated to require Flutter 3.24 and Dart 3.5, migrating the native code to the v2 embedding (FlutterActivity) and removing support for the deprecated v1 embedding. The example now includes a debug AndroidManifest with INTERNET permission for hot reload, adds permissions for location, camera, and audio capture, and removes the native WebViewFeature.SUPPRESS\_ERROR\_PAGE setting.

_flutter\inappwebview/example/android · high confidence

New provider-based state management for the example app's testing interface

The example app's provider layer has been refactored to use dedicated ChangeNotifier classes for managing complex state, replacing previous ad-hoc approaches. This introduces an EventLogProvider for buffering and searching in-app events, a NetworkMonitor for tracking request/response lifecycle data, a SettingsManager for persisting and switching InAppWebViewSettings profiles via SharedPreferences, and a TestRunner for orchestrating automated tests with support for both visible and headless WebView modes. These providers centralize the logic for the testing interface, enabling users to configure, run, and inspect WebView behavior more systematically within the example application.

_flutter\inappwebview/example/lib/providers · high confidence

Project rebranding and repository cleanup

The plugin has been renamed from flutter\_inappbrowser to flutter\_inappwebview, reflected in the updated README.md title, badges, and contributor metadata. The project's license has been standardized to the Apache License 2.0, and legacy IntelliJ IDEA module files (.iml) have been removed. Additionally, the CHANGELOG.md has been deleted, and the .gitignore has been updated to include Flutter-specific build artifacts and tooling directories.

(repo-wide) · high confidence

Web example app now includes PWA support and JavaScript bridge demo pages

The web example application has been updated to support Progressive Web App (PWA) features, including a manifest file and service worker integration, and now provides dedicated HTML pages to demonstrate the JavaScript bridge functionality. Users can now test the \flutterInAppWebViewPlatformReady\ event and call Dart handlers from web pages, as well as navigate between simple and heavy-loading pages to verify performance and state management in the web platform.

_flutter\inappwebview/example/web · high confidence

Web platform JavaScript bridge and event handling implementation

The web support script for flutter\_inappwebview has been updated to implement core JavaScript bridge functionality and WebView lifecycle events. This includes enabling the JavaScript bridge with origin allow-listing, handling user scripts injection, and bridging native callbacks for console messages, history updates, and window operations (create, close, print). The implementation also hooks into iframe load events and fullscreen changes to synchronize state between the web view and the Flutter engine.

_flutter\_inappwebview\web/lib/assets · high confidence

iOS example project updated for Xcode 16 and iOS 13+ compatibility

The iOS example app has been restructured and updated to support modern development environments. The minimum deployment target is now iOS 13.0 (up from 8.0), and the project scheme is configured for Xcode 15.10, including a pre-build script to prepare the Flutter framework and a custom LLDB init file for debugging. The project also now includes a Foundation extension target named 'test' (with its own storyboard and Swift implementation) and links the UniformTypeIdentifiers framework, while CocoaPods configuration files have been updated to conditionally include Pod support.

_flutter\inappwebview/example/ios · high confidence

Fixes

Updated iOS example app for modern platform standards

The iOS example application has been updated to align with current iOS and Flutter standards. The minimum deployment target is now iOS 13.0, and the Info.plist has been modernized to include required usage descriptions for camera, microphone, location, and local network access, as well as settings to disable minimum frame duration and support indirect input events. The Xcode project configuration has been refreshed to use the \@main\ entry point and updated launch options, and the example code now demonstrates the \flutter\_inappwebview\_ios\ plugin with a complete UI including pull-to-refresh and URL handling.

_flutter\_inappwebview\ios/example · high confidence

Test coverage

Added empty test file for flutter\_inappwebview\_web; Added initial test file for Android plugin; Added initial test file for flutter\_inappwebview\_ios; Added initial test file for macOS in-app webview; Added integration test driver for the example app; Added test automation UI screens for configuration and execution; Added tests for example app webview utility widgets; Added unit tests for example app model classes; Added unit tests for example app providers; Added unit tests for example app utility functions; Added widget tests for example app common components; Added widget tests for example app screens and test infrastructure; Expanded integration test coverage for ChromeSafariBrowser, InAppBrowser, and HeadlessInAppWebView.

Dependencies

Update internal annotations and code generator dependencies

The \flutter\_inappwebview\_internal\_annotations\ package is updated to version 1.3.0, and the \generators\ package is updated to depend on \flutter\_inappwebview\_internal\_annotations\ ^1.3.0, along with \build\ ^4.0.0, \source\_gen\ ^4.0.0, and \analyzer\ ^9.0.0. These changes support the plugin's code generation infrastructure.

(dependencies) · high confidence

Housekeeping

Test Node Server: Added .gitignore and Flutter Logo Asset

The test\_node\_server location now includes a comprehensive .gitignore file to exclude standard build artifacts, caches, and environment files, alongside a new Flutter logo SVG asset. These additions support the local development and testing infrastructure for the node server.

_test\_node\server · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 47.

Lenses

  • Code Health 47
  • Architecture 96
  • Maturity 47
  • Readiness 32
  • Security 92
  • Domain Modelling 100

Changes since last survey

  • 300 commits — 267 feature/other, 33 fixes

By area

  • flutter_inappwebview/example — 80 commits
  • (repo) — 58 commits
  • flutter_inappwebview_platform_interface/lib — 38 commits
  • flutter_inappwebview_linux/linux — 33 commits
  • (root) — 19 commits
  • flutter_inappwebview/CHANGELOG.md — 14 commits
  • flutter_inappwebview_windows/windows — 14 commits
  • flutter_inappwebview_linux/lib — 6 commits
  • .github/copilot-instructions.md — 4 commits
  • flutter_inappwebview_macos/macos — 4 commits
  • flutter_inappwebview_android/android — 3 commits
  • flutter_inappwebview_windows/lib — 3 commits
  • dev_packages/flutter_inappwebview_internal_annotations — 2 commits
  • dev_packages/generators — 2 commits
  • flutter_inappwebview/README.md — 2 commits
  • flutter_inappwebview/lib — 2 commits
  • flutter_inappwebview_ios/ios — 2 commits
  • flutter_inappwebview_linux/example — 2 commits
  • .github/agents — 1 commit
  • .github/instructions — 1 commit

Notable commits

  • fix: Add Swift Package Manager support for iOS and macOS, fix #2409
  • fix: Fixed recursive calling toMap in AndroidInternalStoragePathHandler
  • fix: Merge pull request #2538 from Timeware-Innovation/fix-prevent-gesture-delay
  • fix: added getProcessInfos and getFailureReportFolderPath WebViewEnvironment methods, added onProcessInfosChanged WebViewEnvironment event, fix possible Windows crash on App closing"
  • fix: added missing inappbrowser linux calls, fixed linux WPEPlatform rendering issue
  • fix: fix #1973
  • fix: fix #2197, Added useOnAjaxReadyStateChange and useOnAjaxProgress properties to InAppWebViewSettings, updated ajax and fetch webview events code docs
  • fix: fix #2393, ios and macos: Fixed internal javascript callback handlers when the WebView has windowId not null
  • fix: fix #2449, updated changelogs
  • fix: fix #2484, Remove not-empty assert for Cookie.value
  • fix: fixed 'javascript does not run in parent window' test
  • fix: fixed InAppWebViewController.goTo implementation
  • fix: fixed WPEPlatform for scale factor
  • fix: fixed code docs
  • fix: fixed cursor detection js
  • fix: fixed custom popup linux positions, update linux color picker impl
  • fix: fixed keyboard mapping
  • fix: fixed linux LICENSE
  • fix: fixed linux ServerTrustAuthRequestCallback
  • fix: fixed linux arrow key mapping, fixed linux WPEPlatform text selection
  • …and 280 more

Architecture

  • 0 containers · 1 bounded contexts · 0 dependency edges (baseline)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

pichillilorenzo/flutter_inappwebview was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 23 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 17527cae5a3371c1e87f9c1df4281a7710debf28 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.