The WebStorageManager class implements a singleton object (shared instance) which manages the web storage used by WebView instances.

On Android, it is implemented using the WebStorage class. On iOS, it is implemented using WKWebsiteDataStore.default() instance.

Note for iOS: available from iOS 9.0+.

The Android-specific methods can be called using the WebStorageManager.instance().android attribute.

The AndroidWebStorageManager class is used to manage the JavaScript storage APIs provided by the WebView. It manages the Application Cache API, the Web SQL Database API and the HTML5 Web Storage API.

The iOS-specific methods can be called using the WebStorageManager.instance().ios attribute.

The IOSWebStorageManager class represents various types of data that a website might make use of. This includes cookies, disk and memory caches, and persistent data such as WebSQL, IndexedDB databases, and local storage.

Example:

// get the WebStorageManager instance
WebStorageManager webStorageManager = WebStorageManager.instance();

if (Platform.isAndroid) {
  // if current platform is Android, delete all data. 
  await webStorageManager.android.deleteAllData();
} else if (Platform.isIOS) {
  // if current platform is iOS, delete all data for "flutter.dev".
  var records = await webStorageManager.ios.fetchDataRecords(dataTypes: IOSWKWebsiteDataType.values);
  var recordsToDelete = <IOSWKWebsiteDataRecord>[];
  for (var record in records) {
    if (record.displayName == 'flutter.dev') {
      recordsToDelete.add(record);
    }
  }
  await webStorageManager.ios.removeDataFor(
      dataTypes: IOSWKWebsiteDataType.values,
      dataRecords: recordsToDelete
  );
}