diff --git a/android/app/src/main/kotlin/io/openim/flutter/openim/MainActivity.kt b/android/app/src/main/kotlin/io/openim/flutter/openim/MainActivity.kt index 7ad389c..089a7f3 100644 --- a/android/app/src/main/kotlin/io/openim/flutter/openim/MainActivity.kt +++ b/android/app/src/main/kotlin/io/openim/flutter/openim/MainActivity.kt @@ -31,10 +31,10 @@ class MainActivity : FlutterActivity() { private val WEBVIEW_CACHE_CHANNEL = "io.openim.flutter.im_webview_app/webview_cache" private val TAG = "MainActivity" private val MAX_BRANDING_ICON_SIZE = 192 - private val WEBVIEW_DATA_DIRECTORY_SUFFIX = "h5_shell_fresh_profile_v3" + private val WEBVIEW_DATA_DIRECTORY_SUFFIX = "h5_shell_fresh_profile_v4" private val WEBVIEW_STORAGE_RESET_PREFS = "h5_shell_webview_storage" private val WEBVIEW_STORAGE_RESET_KEY = "reset_version" - private val WEBVIEW_STORAGE_RESET_VERSION = 3 + private val WEBVIEW_STORAGE_RESET_VERSION = 4 override fun onCreate(savedInstanceState: android.os.Bundle?) { configureWebViewDataDirectory() diff --git a/lib/main.dart b/lib/main.dart index 711bf58..070b24b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -217,9 +217,18 @@ class _H5ShellPageState extends State { }); } + await _clearWebViewHttpCache(); await _controller.loadRequest(Uri.parse(url)); } + Future _clearWebViewHttpCache() async { + try { + await _controller.clearCache(); + } catch (_) { + // Some WebView implementations can reject cache operations before first use. + } + } + Future _handleNavigationRequest( NavigationRequest request, ) async {