Преглед изворни кода

[android] finalise `enableCache` android support, uses `setAppCachePath` & `setAppCacheEnabled`

Salakar пре 6 година
родитељ
комит
6d70deaff8

+ 11
- 1
android/src/main/java/com/reactnativecommunity/webview/RNCWebViewManager.java Прегледај датотеку

@@ -1,8 +1,11 @@
1 1
 package com.reactnativecommunity.webview;
2 2
 
3
+import android.annotation.SuppressLint;
3 4
 import android.annotation.TargetApi;
4 5
 import android.content.Context;
6
+
5 7
 import com.facebook.react.uimanager.UIManagerModule;
8
+
6 9
 import java.util.LinkedList;
7 10
 import java.util.List;
8 11
 import java.util.regex.Pattern;
@@ -303,6 +306,7 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
303 306
       return new RNCWebViewBridge(webView);
304 307
     }
305 308
 
309
+    @SuppressLint("AddJavascriptInterface")
306 310
     public void setMessagingEnabled(boolean enabled) {
307 311
       if (messagingEnabled == enabled) {
308 312
         return;
@@ -484,9 +488,15 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
484 488
   @ReactProp(name = "enableCache")
485 489
   public void setCacheEnabled(WebView view, boolean enabled) {
486 490
     if (enabled) {
487
-      view.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
491
+      Context ctx = view.getContext();
492
+      if (ctx != null) {
493
+        view.getSettings().setAppCachePath(ctx.getCacheDir().getAbsolutePath());
494
+        view.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
495
+        view.getSettings().setAppCacheEnabled(true);
496
+      }
488 497
     } else {
489 498
       view.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
499
+      view.getSettings().setAppCacheEnabled(false);
490 500
     }
491 501
   }
492 502