Skip to content

Commit 971ac88

Browse files
Merge branch 'master' into master
2 parents c15ee02 + f80bf88 commit 971ac88

29 files changed

+2025
-580
lines changed

.idea/runConfigurations/example_lib_main_dart.xml

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

+199-184
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGELOG.md

+10-4
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
- Added `onLoadResourceCustomScheme` event and `resourceCustomSchemes` option to set custom schemes that WebView must handle to load resources
1414
- Added `onTargetBlank` event and `useOnTargetBlank` option to manage links with `target="_blank"`
1515
- Added `ContentBlocker`, `ContentBlockerTrigger` and `ContentBlockerAction` classes and the `contentBlockers` option that allows to define a set of rules to use to block content in the WebView
16-
- Added new WebView options: `minimumFontSize`, `debuggingEnabled`, `preferredContentMode`
17-
- Added new Android WebView options: `allowContentAccess`, `allowFileAccess`, `allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`, `appCacheEnabled`, `appCachePath`, `blockNetworkImage`, `blockNetworkLoads`, `cacheMode`, `cursiveFontFamily`, `defaultFixedFontSize`, `defaultFontSize`, `defaultTextEncodingName`, `disabledActionModeMenuItems`, `fantasyFontFamily`, `fixedFontFamily`, `forceDark`, `geolocationEnabled`, `layoutAlgorithm`, `loadWithOverviewMode`, `loadsImagesAutomatically`, `minimumLogicalFontSize`, `needInitialFocus`, `offscreenPreRaster`, `sansSerifFontFamily`, `serifFontFamily`, `standardFontFamily`
18-
- Added new iOS WebView options: `applicationNameForUserAgent`, `isFraudulentWebsiteWarningEnabled`, `selectionGranularity`, `dataDetectorTypes`
16+
- Added new WebView options: `minimumFontSize`, `debuggingEnabled`, `preferredContentMode`, `applicationNameForUserAgent`, `incognito`, `cacheEnabled`
17+
- Added new Android WebView options: `allowContentAccess`, `allowFileAccess`, `allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`, `appCachePath`, `blockNetworkImage`, `blockNetworkLoads`, `cacheMode`, `cursiveFontFamily`, `defaultFixedFontSize`, `defaultFontSize`, `defaultTextEncodingName`, `disabledActionModeMenuItems`, `fantasyFontFamily`, `fixedFontFamily`, `forceDark`, `geolocationEnabled`, `layoutAlgorithm`, `loadWithOverviewMode`, `loadsImagesAutomatically`, `minimumLogicalFontSize`, `needInitialFocus`, `offscreenPreRaster`, `sansSerifFontFamily`, `serifFontFamily`, `standardFontFamily`, `saveFormData`, `thirdPartyCookiesEnabled`, `hardwareAcceleration`
18+
- Added new iOS WebView options: `isFraudulentWebsiteWarningEnabled`, `selectionGranularity`, `dataDetectorTypes`, `sharedCookiesEnabled`
1919
- Added `onGeolocationPermissionsShowPrompt` event and `GeolocationPermissionShowPromptResponse` class (available only for Android)
2020
- Added `startSafeBrowsing`, `setSafeBrowsingWhitelist` and `getSafeBrowsingPrivacyPolicyUrl` methods (available only for Android)
2121
- Added `clearSslPreferences` and `clearClientCertPreferences` methods (available only for Android)
@@ -26,7 +26,9 @@
2626
- Added `HttpAuthCredentialDatabase` class
2727
- Added `onReceivedServerTrustAuthRequest` and `onReceivedClientCertRequest` events to manage SSL requests
2828
- Added `onFindResultReceived` event, `findAllAsync`, `findNext` and `clearMatches` methods
29-
- Added `getHtml` method
29+
- Added `getHtml`, `injectJavascriptFileFromAsset` and `injectCSSFileFromAsset` methods
30+
- Added `shouldInterceptAjaxRequest`, `onAjaxReadyStateChange`, `onAjaxProgress` and `shouldInterceptFetchRequest` events with `useShouldInterceptAjaxRequest` and `useShouldInterceptFetchRequest` webview options
31+
- Added `onNavigationStateChange` event
3032
- Fun: added `getTRexRunnerHtml` and `getTRexRunnerCss` methods to get html (with javascript) and css to recreate the Chromium's t-rex runner game
3133

3234
### BREAKING CHANGES
@@ -37,6 +39,10 @@
3739
- Updated `CookieManager` class
3840
- WebView options are now available with the new corresponding classes: `InAppWebViewOptions`, `AndroidInAppWebViewOptions`, `iOSInAppWebViewOptions`, `InAppBrowserOptions`, `AndroidInAppBrowserOptions`, `iOSInAppBrowserOptions`, `AndroidChromeCustomTabsOptions` and `iOSSafariOptions`
3941
- Renamed `getFavicon` to `getFavicons`, now it returns a list of all favicons (`List<Favicon>`) found
42+
- Renamed `injectScriptFile` to `injectJavascriptFileFromUrl`
43+
- Renamed `injectScriptCode` to `evaluateJavascript`
44+
- Renamed `injectStyleCode` to `injectCSSCode`
45+
- Renamed `injectStyleFile` to `injectCSSFileFromUrl`
4046

4147
## 1.2.1
4248

android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/ContentBlocker/ContentBlockerHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.concurrent.CountDownLatch;
2222
import java.util.regex.Matcher;
2323

24+
import io.flutter.plugin.common.MethodChannel;
2425
import okhttp3.Request;
2526
import okhttp3.Response;
2627

@@ -145,7 +146,7 @@ public void run() {
145146
@Override
146147
public void run() {
147148
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
148-
webView.evaluateJavascript(jsScript, null);
149+
webView.evaluateJavascript(jsScript, (MethodChannel.Result) null);
149150
} else {
150151
webView.loadUrl("javascript:" + jsScript);
151152
}

android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/FlutterWebView.java

+13-16
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package com.pichillilorenzo.flutter_inappbrowser;
22

3-
import android.Manifest;
43
import android.app.Activity;
54
import android.content.Context;
65
import android.hardware.display.DisplayManager;
76
import android.os.Build;
8-
import android.os.Handler;
97
import android.util.Log;
108
import android.view.View;
119
import android.webkit.WebChromeClient;
@@ -15,21 +13,20 @@
1513
import com.pichillilorenzo.flutter_inappbrowser.InAppWebView.DisplayListenerProxy;
1614
import com.pichillilorenzo.flutter_inappbrowser.InAppWebView.InAppWebView;
1715
import com.pichillilorenzo.flutter_inappbrowser.InAppWebView.InAppWebViewOptions;
18-
import com.pichillilorenzo.flutter_inappbrowser.InAppWebView.InputAwareWebView;
1916

2017
import java.io.IOException;
2118
import java.util.HashMap;
2219
import java.util.List;
2320
import java.util.Map;
2421

25-
import io.flutter.plugin.common.BinaryMessenger;
2622
import io.flutter.plugin.common.MethodCall;
2723
import io.flutter.plugin.common.MethodChannel;
28-
import static io.flutter.plugin.common.MethodChannel.MethodCallHandler;
29-
import static io.flutter.plugin.common.MethodChannel.Result;
3024
import io.flutter.plugin.common.PluginRegistry.Registrar;
3125
import io.flutter.plugin.platform.PlatformView;
3226

27+
import static io.flutter.plugin.common.MethodChannel.MethodCallHandler;
28+
import static io.flutter.plugin.common.MethodChannel.Result;
29+
3330
public class FlutterWebView implements PlatformView, MethodCallHandler {
3431

3532
static final String LOG_TAG = "FlutterWebView";
@@ -135,33 +132,33 @@ public void onMethodCall(MethodCall call, final Result result) {
135132
else
136133
result.success(false);
137134
break;
138-
case "injectScriptCode":
135+
case "evaluateJavascript":
139136
if (webView != null) {
140137
String source = (String) call.argument("source");
141-
webView.injectScriptCode(source, result);
138+
webView.evaluateJavascript(source, result);
142139
}
143140
else {
144141
result.success("");
145142
}
146143
break;
147-
case "injectScriptFile":
144+
case "injectJavascriptFileFromUrl":
148145
if (webView != null) {
149146
String urlFile = (String) call.argument("urlFile");
150-
webView.injectScriptFile(urlFile);
147+
webView.injectJavascriptFileFromUrl(urlFile);
151148
}
152149
result.success(true);
153150
break;
154-
case "injectStyleCode":
151+
case "injectCSSCode":
155152
if (webView != null) {
156153
String source = (String) call.argument("source");
157-
webView.injectStyleCode(source);
154+
webView.injectCSSCode(source);
158155
}
159156
result.success(true);
160157
break;
161-
case "injectStyleFile":
158+
case "injectCSSFileFromUrl":
162159
if (webView != null) {
163160
String urlFile = (String) call.argument("urlFile");
164-
webView.injectStyleFile(urlFile);
161+
webView.injectCSSFileFromUrl(urlFile);
165162
}
166163
result.success(true);
167164
break;
@@ -312,13 +309,13 @@ public void onPageFinished(WebView view, String url) {
312309

313310
@Override
314311
public void onInputConnectionLocked() {
315-
if (webView.inAppBrowserActivity == null)
312+
if (webView != null && webView.inAppBrowserActivity == null)
316313
webView.lockInputConnection();
317314
}
318315

319316
@Override
320317
public void onInputConnectionUnlocked() {
321-
if (webView.inAppBrowserActivity == null)
318+
if (webView != null && webView.inAppBrowserActivity == null)
322319
webView.unlockInputConnection();
323320
}
324321

android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowser.java

+16-16
Original file line numberDiff line numberDiff line change
@@ -192,23 +192,23 @@ public void run() {
192192
case "close":
193193
close(activity, uuid, result);
194194
break;
195-
case "injectScriptCode":
195+
case "evaluateJavascript":
196196
source = (String) call.argument("source");
197-
injectScriptCode(uuid, source, result);
197+
evaluateJavascript(uuid, source, result);
198198
break;
199-
case "injectScriptFile":
199+
case "injectJavascriptFileFromUrl":
200200
urlFile = (String) call.argument("urlFile");
201-
injectScriptFile(uuid, urlFile);
201+
injectJavascriptFileFromUrl(uuid, urlFile);
202202
result.success(true);
203203
break;
204-
case "injectStyleCode":
204+
case "injectCSSCode":
205205
source = (String) call.argument("source");
206-
injectStyleCode(uuid, source);
206+
injectCSSCode(uuid, source);
207207
result.success(true);
208208
break;
209-
case "injectStyleFile":
209+
case "injectCSSFileFromUrl":
210210
urlFile = (String) call.argument("urlFile");
211-
injectStyleFile(uuid, urlFile);
211+
injectCSSFileFromUrl(uuid, urlFile);
212212
result.success(true);
213213
break;
214214
case "show":
@@ -314,33 +314,33 @@ public void run() {
314314

315315
}
316316

317-
private void injectScriptCode(String uuid, String source, final Result result) {
317+
private void evaluateJavascript(String uuid, String source, final Result result) {
318318
final InAppBrowserActivity inAppBrowserActivity = webViewActivities.get(uuid);
319319
if (inAppBrowserActivity != null) {
320-
inAppBrowserActivity.injectScriptCode(source, result);
320+
inAppBrowserActivity.evaluateJavascript(source, result);
321321
} else {
322322
Log.d(LOG_TAG, "webView is null");
323323
}
324324
}
325325

326-
private void injectScriptFile(String uuid, String urlFile) {
326+
private void injectJavascriptFileFromUrl(String uuid, String urlFile) {
327327
final InAppBrowserActivity inAppBrowserActivity = webViewActivities.get(uuid);
328328
if (inAppBrowserActivity != null) {
329-
inAppBrowserActivity.injectScriptFile(urlFile);
329+
inAppBrowserActivity.injectJavascriptFileFromUrl(urlFile);
330330
}
331331
}
332332

333-
private void injectStyleCode(String uuid, String source) {
333+
private void injectCSSCode(String uuid, String source) {
334334
final InAppBrowserActivity inAppBrowserActivity = webViewActivities.get(uuid);
335335
if (inAppBrowserActivity != null) {
336-
inAppBrowserActivity.injectStyleCode(source);
336+
inAppBrowserActivity.injectCSSCode(source);
337337
}
338338
}
339339

340-
private void injectStyleFile(String uuid, String urlFile) {
340+
private void injectCSSFileFromUrl(String uuid, String urlFile) {
341341
final InAppBrowserActivity inAppBrowserActivity = webViewActivities.get(uuid);
342342
if (inAppBrowserActivity != null) {
343-
inAppBrowserActivity.injectStyleFile(urlFile);
343+
inAppBrowserActivity.injectCSSFileFromUrl(urlFile);
344344
}
345345
}
346346

android/src/main/java/com/pichillilorenzo/flutter_inappbrowser/InAppBrowserActivity.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -434,26 +434,26 @@ public HashMap<String, Object> getOptions() {
434434
return optionsMap;
435435
}
436436

437-
public void injectScriptCode(String source, MethodChannel.Result result) {
437+
public void evaluateJavascript(String source, MethodChannel.Result result) {
438438
if (webView != null)
439-
webView.injectScriptCode(source, result);
439+
webView.evaluateJavascript(source, result);
440440
else
441441
result.success("");
442442
}
443443

444-
public void injectScriptFile(String urlFile) {
444+
public void injectJavascriptFileFromUrl(String urlFile) {
445445
if (webView != null)
446-
webView.injectScriptFile(urlFile);
446+
webView.injectJavascriptFileFromUrl(urlFile);
447447
}
448448

449-
public void injectStyleCode(String source) {
449+
public void injectCSSCode(String source) {
450450
if (webView != null)
451-
webView.injectStyleCode(source);
451+
webView.injectCSSCode(source);
452452
}
453453

454-
public void injectStyleFile(String urlFile) {
454+
public void injectCSSFileFromUrl(String urlFile) {
455455
if (webView != null)
456-
webView.injectStyleFile(urlFile);
456+
webView.injectCSSFileFromUrl(urlFile);
457457
}
458458

459459
public HashMap<String, Object> getCopyBackForwardList() {

0 commit comments

Comments
 (0)