mirror of
https://github.com/status-im/react-native-webview.git
synced 2026-08-31 03:31:05 +00:00
feat(android): add clearHistory, clearCache and clearFormData (#450)
* add clearHistory, clearCache and clearFormData android webview api. * remove pointless `async` * add docs for new android webview methods * Update Reference.md * update commands types * add more strict type for RNCWebViewUIManager `Commands` property
This commit is contained in:
committed by
Thibault Malbranche
parent
5d6128909c
commit
4a4f4a2c45
@@ -115,6 +115,12 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
|
||||
public static final int COMMAND_INJECT_JAVASCRIPT = 6;
|
||||
public static final int COMMAND_LOAD_URL = 7;
|
||||
public static final int COMMAND_FOCUS = 8;
|
||||
|
||||
// android commands
|
||||
public static final int COMMAND_CLEAR_FORM_DATA = 1000;
|
||||
public static final int COMMAND_CLEAR_CACHE = 1001;
|
||||
public static final int COMMAND_CLEAR_HISTORY = 1002;
|
||||
|
||||
protected static final String REACT_CLASS = "RNCWebView";
|
||||
protected static final String HTML_ENCODING = "UTF-8";
|
||||
protected static final String HTML_MIME_TYPE = "text/html";
|
||||
@@ -266,7 +272,7 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
|
||||
break;
|
||||
case "LOAD_CACHE_ELSE_NETWORK":
|
||||
cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK;
|
||||
break;
|
||||
break;
|
||||
case "LOAD_NO_CACHE":
|
||||
cacheMode = WebSettings.LOAD_NO_CACHE;
|
||||
break;
|
||||
@@ -545,17 +551,19 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
|
||||
@Override
|
||||
public @Nullable
|
||||
Map<String, Integer> getCommandsMap() {
|
||||
Map map = MapBuilder.of(
|
||||
"goBack", COMMAND_GO_BACK,
|
||||
"goForward", COMMAND_GO_FORWARD,
|
||||
"reload", COMMAND_RELOAD,
|
||||
"stopLoading", COMMAND_STOP_LOADING,
|
||||
"postMessage", COMMAND_POST_MESSAGE,
|
||||
"injectJavaScript", COMMAND_INJECT_JAVASCRIPT,
|
||||
"loadUrl", COMMAND_LOAD_URL
|
||||
);
|
||||
map.put("requestFocus", COMMAND_FOCUS);
|
||||
return map;
|
||||
return MapBuilder.<String, Integer>builder()
|
||||
.put("goBack", COMMAND_GO_BACK)
|
||||
.put("goForward", COMMAND_GO_FORWARD)
|
||||
.put("reload", COMMAND_RELOAD)
|
||||
.put("stopLoading", COMMAND_STOP_LOADING)
|
||||
.put("postMessage", COMMAND_POST_MESSAGE)
|
||||
.put("injectJavaScript", COMMAND_INJECT_JAVASCRIPT)
|
||||
.put("loadUrl", COMMAND_LOAD_URL)
|
||||
.put("requestFocus", COMMAND_FOCUS)
|
||||
.put("clearFormData", COMMAND_CLEAR_FORM_DATA)
|
||||
.put("clearCache", COMMAND_CLEAR_CACHE)
|
||||
.put("clearHistory", COMMAND_CLEAR_HISTORY)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -606,6 +614,16 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> {
|
||||
case COMMAND_FOCUS:
|
||||
root.requestFocus();
|
||||
break;
|
||||
case COMMAND_CLEAR_FORM_DATA:
|
||||
root.clearFormData();
|
||||
break;
|
||||
case COMMAND_CLEAR_CACHE:
|
||||
boolean includeDiskFiles = args != null && args.getBoolean(0);
|
||||
root.clearCache(includeDiskFiles);
|
||||
break;
|
||||
case COMMAND_CLEAR_HISTORY:
|
||||
root.clearHistory();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user