7
7
import android .graphics .Point ;
8
8
import android .view .Display ;
9
9
import android .widget .FrameLayout ;
10
+ import android .webkit .CookieManager ;
11
+ import android .webkit .ValueCallback ;
12
+ import android .os .Build ;
10
13
11
14
import java .util .Map ;
12
15
@@ -70,7 +73,10 @@ public void onMethodCall(MethodCall call, MethodChannel.Result result) {
70
73
break ;
71
74
case "stopLoading" :
72
75
stopLoading (call , result );
73
- break ;
76
+ break ;
77
+ case "cleanCookie" :
78
+ cleanCookie (call , result );
79
+ break ;
74
80
default :
75
81
result .notImplemented ();
76
82
break ;
@@ -86,6 +92,8 @@ private void openUrl(MethodCall call, MethodChannel.Result result) {
86
92
boolean clearCookies = call .argument ("clearCookies" );
87
93
boolean withZoom = call .argument ("withZoom" );
88
94
boolean withLocalStorage = call .argument ("withLocalStorage" );
95
+ boolean supportMultipleWindows = call .argument ("supportMultipleWindows" );
96
+ boolean appCacheEnabled = call .argument ("appCacheEnabled" );
89
97
Map <String , String > headers = call .argument ("headers" );
90
98
boolean scrollBar = call .argument ("scrollBar" );
91
99
@@ -106,7 +114,9 @@ private void openUrl(MethodCall call, MethodChannel.Result result) {
106
114
headers ,
107
115
withZoom ,
108
116
withLocalStorage ,
109
- scrollBar
117
+ scrollBar ,
118
+ supportMultipleWindows ,
119
+ appCacheEnabled
110
120
);
111
121
result .success (null );
112
122
}
@@ -132,7 +142,7 @@ private FrameLayout.LayoutParams buildLayoutParams(MethodCall call) {
132
142
}
133
143
134
144
private void stopLoading (MethodCall call , MethodChannel .Result result ) {
135
- if (webViewManager != null ){
145
+ if (webViewManager != null ) {
136
146
webViewManager .stopLoading (call , result );
137
147
}
138
148
}
@@ -144,47 +154,40 @@ private void close(MethodCall call, MethodChannel.Result result) {
144
154
}
145
155
}
146
156
147
- /**
148
- * Navigates back on the Webview.
149
- */
157
+ /**
158
+ * Navigates back on the Webview.
159
+ */
150
160
private void back (MethodCall call , MethodChannel .Result result ) {
151
161
if (webViewManager != null ) {
152
162
webViewManager .back (call , result );
153
163
}
154
164
}
155
- /**
156
- * Navigates forward on the Webview.
157
- */
165
+
166
+ /**
167
+ * Navigates forward on the Webview.
168
+ */
158
169
private void forward (MethodCall call , MethodChannel .Result result ) {
159
170
if (webViewManager != null ) {
160
171
webViewManager .forward (call , result );
161
172
}
162
173
}
163
174
164
- /**
165
- * Reloads the Webview.
166
- */
175
+ /**
176
+ * Reloads the Webview.
177
+ */
167
178
private void reload (MethodCall call , MethodChannel .Result result ) {
168
179
if (webViewManager != null ) {
169
180
webViewManager .reload (call , result );
170
181
}
171
182
}
183
+
172
184
private void reloadUrl (MethodCall call , MethodChannel .Result result ) {
173
185
if (webViewManager != null ) {
174
186
String url = call .argument ("url" );
175
- webViewManager .openUrl (false ,
176
- false ,
177
- false ,
178
- false ,
179
- "" ,
180
- url ,
181
- null ,
182
- false ,
183
- false ,
184
- false
185
- );
187
+ webViewManager .reloadUrl (url );
186
188
}
187
189
}
190
+
188
191
private void eval (MethodCall call , final MethodChannel .Result result ) {
189
192
if (webViewManager != null ) {
190
193
webViewManager .eval (call , result );
@@ -198,25 +201,41 @@ private void resize(MethodCall call, final MethodChannel.Result result) {
198
201
}
199
202
result .success (null );
200
203
}
204
+
201
205
private void hide (MethodCall call , final MethodChannel .Result result ) {
202
206
if (webViewManager != null ) {
203
207
webViewManager .hide (call , result );
204
208
}
205
209
}
210
+
206
211
private void show (MethodCall call , final MethodChannel .Result result ) {
207
212
if (webViewManager != null ) {
208
213
webViewManager .show (call , result );
209
214
}
210
215
}
211
216
217
+ private void cleanCookie (MethodCall call , final MethodChannel .Result result ) {
218
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .LOLLIPOP ) {
219
+ CookieManager .getInstance ().removeAllCookies (new ValueCallback <Boolean >() {
220
+ @ Override
221
+ public void onReceiveValue (Boolean aBoolean ) {
222
+
223
+ }
224
+ });
225
+ } else {
226
+ CookieManager .getInstance ().removeAllCookie ();
227
+ }
228
+ result .success (null );
229
+ }
230
+
212
231
private int dp2px (Context context , float dp ) {
213
232
final float scale = context .getResources ().getDisplayMetrics ().density ;
214
233
return (int ) (dp * scale + 0.5f );
215
234
}
216
235
217
236
@ Override
218
237
public boolean onActivityResult (int i , int i1 , Intent intent ) {
219
- if (webViewManager != null && webViewManager .resultHandler != null ){
238
+ if (webViewManager != null && webViewManager .resultHandler != null ) {
220
239
return webViewManager .resultHandler .handleResult (i , i1 , intent );
221
240
}
222
241
return false ;
0 commit comments