- Removed Android unsafe trust manager
- Fixed LICENSE
- Fixed README
- Added support for Android 33
- Fixed possible null pointer exception in Android
ChromeCustomTabsActivity.java
- Merged "Xcode 14 build error: Stored properties cannot be marked potentially unavailable with '@available'" #1238 (thanks to CodeEagle)
- Fixed example for iOS
- Fixed possible Android java.lang.NullPointerException in "InAppBrowserActivity.onCreateOptionsMenu" about "webView.getTitle()"
- Fixed "iOS flutter_inappwebview/URLRequest.swift:13: Fatal error: Unexpectedly found nil while unwrapping an Optional value" #1173
- Fixed possible java.lang.NullPointerException in
Runnable
ofInputAwareWebView.setInputConnectionTarget
method - Fixed "Android Crash in latest 5.4.3+4 - java.lang.NullPointerException: Attempt to invoke virtual method java.lang.String android.webkit.WebView.getUrl()" #1168
- Updated docs for
ChromeSafariBrowser.open
and throw error on iOS if theurl
parameter use a different scheme thenhttp
orhttps
- Fixed "Android error: package org.jetbrains.annotations does not exist import org.jetbrains.annotations.NotNull;" #1166
- Fixed "Latest version 5.4.3 crashes on Android" #1159
- Try to fix "Latest version 5.4.3 crashes on Android" #1159
- Added Bitwise OR operator support for
AndroidActionModeMenuItem
class
- Try to fix "Latest version 5.4.2 crashes on Android - HeadlessInAppWebView.dispose" #1155
- Added
setActionButton
method toChromeSafariBrowser
class
- Fixed "Android ServiceWorkerControllerCompat.setServiceWorkerClient(null) makes Webivew Plugin Crashes" #1151
- Fixed Android default context menu over custom context menu on API Level 31+
- Managed iOS native
detachFromEngine
flutter plugin event and updateddispose
methods - Updated Android native
HeadlessInAppWebViewManager.dispose
andHeadlessInAppWebView.dispose
methods
- Fixed Android error in some cases when calling
setServiceWorkerClient
java method onServiceWorkerManager
initialization
- Fixed Android
ChromeCustomTabsActivity
not responding to theActionBroadcastReceiver
- Merged "[Android] Explicitly export for the receiver defined in AndroidManifest" #1147 (thanks to AlexV525)
getOriginalUrl
method is cross-platform now- Updated Android
compileSdkVersion
to 31 - Updated Flutter environment: sdk to
>=2.14.0 <3.0.0
and flutter version to>=2.5.0
- Added
singleInstance
option for AndroidChromeSafariBrowser
implementation - Added
onDownloadStartRequest
event and deprecated oldonDownloadStart
event - Added
shareState
Android option forChromeSafariBrowser
class - Added support for Android TWA (Trusted Web Activity)
- Fixed missing
onZoomScaleChanged
call forInAppBrowser
class - Fixed
requestImageRef
method alwaysnull
on iOS - Fixed "applicationNameForUserAgent is not work in ios" #525
- Fixed "Crash when try select file from webview input on Android" #867
- Fixed "NavigationAction.request should use toMap method" #878
- Fixed "Missing body field in URLRequest toMap method" #990
- Fixed "iOS : createWindowAction.request.body in onCreateWindow() is NULL" #994
- Fixed "Crash at HeadlessInAppWebView dispose" #881
- Fixed "Crash happens when HeadlessInAppWebView's dispose function is called in iOS" #972
- Fixed "In android, when click a href with img returns img src on onCreateWindow" #951
- Fixed "crash at com.pichillilorenzo.flutter_inappwebview.in_app_webview.InAppWebView$11.run (InAppWebView.java:1307)" #1040
- Fixed "Unexpected behavior when using a null initialUrlRequest" #1063
- Fixed "Local storage & cookie didn't persist when sharedCookie and cache both enabled" #1092
- Fixed "ios zoomBy crash: Foundation/NSNumber.swift:467: Fatal error: Unable to bridge NSNumber to Float" #873
- Fixed "In App Browser Crashing in Android - Action Bar is null" #1137
- Fixed "Cannot load Javascript on some Android devices - Uncaught TypeError: Cannot read property 'appendChild' of null" #888
- Merged "Update Options.swift" #889 (thanks to cloudygeek)
- Merged "fix: Applicatio nNameForUserAgent is not working in iOS" #1095 (thanks to sunalwaysknows)
- Merged "Make sure we open a new instance of a custom chrome chrome tab" #812 (thanks to savy-91)
- Merged "fix bug when in String[] array come null" #868 (thanks to Ser1ous)
- Merged "fix: use in NavigationAction request toMap method" #879 (thanks to chreck)
- Merged "switch android mockserver dependency with okhttp" #946 (thanks to randysecrist)
- Merged "Adds missing body to URLRequest mapping." #991 (thanks to Miiha)
- Merged "fix. Crash happens when HeadlessInAppWebView's dispose function is called in iOS" #1017 (thanks to hoanglm4)
- Merged "Fixes URL returned when taping image with href in onCreateWindow [Android]" #1042 (thanks to Manuito83)
- Merged "Fix Android Sometimes crash after close webpage and return to platform code." #1050 (thanks to rsydor)
- Merged "Add application/wasm MimeType with InAppLocalhostServer" #1054 (thanks to foxstream528)
- Merged "Fixed the unexpected behavior of InAppWebView and HeadlessInAppWebView when initialUrlRequest was set as null." #1064 (thanks to RodXander)
- Merged "updated com.android.tools.build:gradle" #1066 (thanks to chownation)
- Merged "WIP - expose content-disposition and content-length from android" #1088 (thanks to ashank96)
- Merged "Fix ios persistance when using sharedCookie" #1093 (thanks to EA-YOUHOU)
- Merged "Fixes zoomBy with floats (iOS)" #1109 (thanks to Manuito83)
- Merged "Build on and support Android 12 SDK 31" #1111 (thanks to carloserazo47)
- Merged "Fix takeScreenshot Crash on iOS" #1123 (thanks to a00012025)
- Merged "Feature. Possibility to disable iOS above keyboard inputAccessoryView" #1124 (thanks to cutzmf)
- Added
onLoad
andonError
callbacks inScriptHtmlTagAttributes
class used byInAppWebViewController.injectJavascriptFileFromUrl
InAppWebViewController.injectJavascriptFileFromAsset
returns aFuture<dynamic>
type now
- Removed duplicate lib exports
- Fixed some rare cases when iOS WKWebView
scrollViewDidEndDragging
event blocks the scroll gesture
- Added support of
allowingReadAccessTo
iOS-specific WebView option for the WebViewinitialData
parameter - Added
iosAllowingReadAccessTo
iOS-specific parameter to theloadData
WebView method - Fixed "iOS webview showing blank page in specific URL" #776
- Fixed "unable to access ApplicationDocumentsDirectory in real Ios devices" #748
- Fixed "Android - Pull to refresh triggered when scrolling container inside a website" #765
- Fixed "InAppWebViewController.getHitTestResult" wrong type mapping
- Added
initialSize
property to theHeadlessInAppWebView
class - Added
setSize
andgetSize
methods to theHeadlessInAppWebView
class androidOnScaleChanged
WebView event is now deprecated. Use the newonZoomScaleChanged
WebView event, that is available for both Android and iOSgetScale
WebView method is now deprecated. Use the newgetZoomScale
WebView method- Removed
final
keyword for allHeadlessInAppWebView
events - Fixed wrong usage of Android WebView scale property
- Fixed "java.lang.NullPointerException: com.pichillilorenzo.flutter_inappwebview.in_app_webview.InAppWebViewRenderProcessClient$1.success(InAppWebViewRenderProcessClient.java:37)" #757
- Fixed "In a multi-activity app, the plugin doesn't reattach to the first activity" #732
- Fixed "ChromeSafariBrowser isn't calling its events, and not keeping track of isOpen properly" #759
- Fixed Android ChromeSafariBrowser menu item callback not called because of PendingIntents extra were cached
- Fixed iOS "Unexpectedly found nil while unwrapping an Optional value: file flutter_inappwebview/WKUserContentController.swift, line 36" error when
applePayAPIEnabled
iOS-specific WebView option is enabled
- Added
isRunning
method to theHeadlessInAppWebView
class - Added
isRunning
method to theInAppLocalhostServer
class - Added
allowGoBackWithBackButton
andshouldCloseOnBackButtonPressed
Android-specific InAppBrowser options - Fixed iOS
WebMessageListener
javascript implementation not calling event listeners whenonmessage
is set - Fixed
onCreateContextMenu
event on Android wherehitTestResult
has alwaysnull
values - Fixed "java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.SearchView.setQuery(java.lang.CharSequence, boolean)' on a null object reference" #742
- Fixed Android js error in some very rare case where
window.flutter_inappwebview
isundefined
when loading plugin scripts
- Added
WebMessageChannel
andWebMessageListener
features - Added
canScrollVertically
andcanScrollHorizontally
webview methods - Added Android pull-to-refresh
setSize
method andsize
option - Added
onOverScrolled
WebView event AndroidInAppWebViewController.getCurrentWebViewPackage
is available now starting from Android API 21+- Updated Android Gradle distributionUrl version to
5.6.4
- Updated Android
androidx.webkit:webkit
to1.4.0
,androidx.browser:browser
to1.3.0
,androidx.appcompat:appcompat
to1.2.0
- Attempt to fix "InAppBrowserActivity.onCreate NullPointerException - Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference" #665
- Fixed "[iOS] Application crashes when processing onCreateWindow" #579
- Fixed wrong mapping of
NavigationAction
class on Android forandroidHasGesture
andandroidIsRedirect
properties - Fixed "Pull to refresh creating problem in some webpages on Android" #719
- Fixed iOS sometimes
scrollView.contentSize
doesn't fit all theframe.size
available - Fixed ajax and fetch interceptor when the data/body sent is not a string
- Fixed "InAppLocalhostServer - Error: type 'List' is not a subtype of type 'List' in type cast" #724
- Merged "fix proguard" #737 (thanks to myroid)
FetchRequest.body
is a dynamic type now
- Fixed "IOS scrolling crash the application" #707
- Fixed "Unsupported operation: Platform._operatingSystem" when compiling for Web again #507
- Fixed missing MATCH_PARENT layout params to the WebView on Android when it is wrapped by PullToRefreshLayout
- Added a test for the pull-to-refresh feature when used on Android. It requires the
useHybridComposition: true
Android-specific option, otherwise it will throw an exception.
- Added support for pull-to-refresh feature #395
- Fixed issue not rendering WebView content when scrolling on iOS #703
- Fixed
InAppBrowser.openData
method InAppBrowser.initialUserScripts
,InAppBrowser.id
,HeadlessInAppWebView.id
properties arefinal
now
- Fixed Android
evaluateJavascript
method when usingcontentWorld: ContentWorld.PAGE
- Updated docs for iOS-specific options
alwaysBounceVertical
andalwaysBounceHorizontal
- Fixed "No bounce in inappwebview iOS" #696
- Updated Android
WebChromeClient.getDefaultVideoPoster
- Removed all the dependencies:
uuid
,device_info
,intl
, andmime
- Added
headers
andstatusCode
properties to IOSURLResponse class
- Fixed Android screenshot out of memory error
- Fixed
getFavicons
WebView method
- Fixed missing
verticalScrollbarThumbColor
,verticalScrollbarTrackColor
,horizontalScrollbarThumbColor
,horizontalScrollbarTrackColor
Android-specific WebView options when calling native javasetOptions()
method on Android
- Added
verticalScrollbarThumbColor
,verticalScrollbarTrackColor
,horizontalScrollbarThumbColor
,horizontalScrollbarTrackColor
Android-specific WebView options - Fixed some null types and wrong casting
- Added support for Dart null-safety feature
- Added Android Hybrid Composition support "Use PlatformViewLink widget for Android WebView" #462 (thanks to plateaukao and tneotia)
- Added
allowUniversalAccessFromFileURLs
andallowFileAccessFromFileURLs
WebView options also for iOS (also thanks to liranhao) - Added limited cookies support on iOS below 11.0 using JavaScript
- Added
IOSCookieManager
class andCookieManager.instance().ios.getAllCookies
iOS-specific method - Added
UserScript
,UserScriptInjectionTime
,ContentWorld
,AndroidWebViewFeature
,AndroidServiceWorkerController
,AndroidServiceWorkerClient
,ScreenshotConfiguration
,IOSWKPDFConfiguration
,URLRequest
classes - Added
initialUserScripts
WebView option - Added
addUserScript
,addUserScripts
,removeUserScript
,removeUserScripts
,removeUserScriptsByGroupName
,removeAllUserScripts
,callAsyncJavaScript
,isSecureContext
WebView methods - Added
contentWorld
argument toevaluateJavascript
WebView method - Added
isDirectionalLockEnabled
,mediaType
,pageZoom
,limitsNavigationsToAppBoundDomains
,useOnNavigationResponse
,applePayAPIEnabled
,allowingReadAccessTo
,disableLongPressContextMenuOnLinks
iOS-specific WebView options - Added
handlesURLScheme
,createPdf
,createWebArchiveData
iOS-specific WebView methods - Added
iosOnNavigationResponse
andiosShouldAllowDeprecatedTLS
iOS-specific WebView events - Added
iosAnimated
optional argument tozoomBy
WebView method - Added
screenshotConfiguration
optional argument totakeScreenshot
WebView method - Added
scriptHtmlTagAttributes
optional argument toinjectJavascriptFileFromUrl
WebView method - Added
cssLinkHtmlTagAttributes
optional argument toinjectCSSFileFromUrl
WebView method - Added
iosAllowingReadAccessTo
iOS-specific optional argument toloadUrl
WebView method - Added new iOS-specific attributes to
ShouldOverrideUrlLoadingRequest
andCreateWindowRequest
classes - Added
toolbarTopTranslucent
,toolbarTopTintColor
,toolbarBottomTintColor
,toolbarTopBarTintColor
ios-specific InAppBrowser options - Updated integration tests
- Merged "Upgraded appcompat to 1.2.0-rc-02" #465 (thanks to andreidiaconu)
- Merged "Added missing field 'headers' which returned by WebResourceResponse.toMap()" #490 (thanks to Doflatango)
- Merged "Fix: added iOS fallback module import" #466 (thanks to Eddayy)
- Merged "Fix NullPointerException after taking a photo by a camera app on Android" #492 (thanks to AAkira)
- Merged "iOS CookieManager.getCookies - Check that URL has suffix of cookie do…" #658 (thanks to arneke)
- Merged "Add NTLM Auth" #634 (thanks to albatrosify)
- Merged "iOS ChromeSafariBrowserManager - Fixing unnecessary casting of rootViewController to FlutterViewController" #567 (thanks to gunantosteven)
- Merged "Fix _channel.invokeMethod name for injectCSSFileFromUrl method" #645 (thanks to omralcrt)
- Merged "Add android media intents on wildcard input accept" #620 (thanks to cbodin)
- Merged "Add ChromeSafariBrowser support for Android 11" #538 (thanks to DRSchlaubi)
- Merged "fix(iOS): missing implementation of method zoomBy" #670 (thanks to pcqpcq)
- Merged "[mod] Fix all issues relate to long click in Android version 7.0 (#657, #527)" #671 (thanks to MrNinja)
- Merged "Fix ViewGroup.removeView NullPointerException (#450)" #683 (thanks to toda-bps)
- Fixed missing properties initialization when using InAppWebViewController.fromInAppBrowser
- Fixed "Issue in Flutter web: 'Unsupported operation: Platform._operatingSystem'" #507
- Fixed "window.flutter_inappwebview.callHandler is not a function" #218
- Fixed "Android ContentBlocker - java.lang.NullPointerException ContentBlockerTrigger resource type" #506
- Fixed "Android CookieManager throws error caused by websites that are sending back illegal/invalid cookies." #476
- Fixed missing
clearHistory
webview method implementation on Android - Fixed iOS crash when using CookieManager getCookies for an URL and the host URL is
null
- Fixed "IOS does not support allowUniversalAccessFromFileURLs" #654
- Fixed "Failed to load WebView provider: No WebView installed" #642
- Fixed "java.net.MalformedURLException: unknown protocol: wss - Error using library sipml5 in flutter_inappwebview" #614
- Fixed "Android 10 clipboard not working properly" #678 (thanks to armadastate)
- Minimum Flutter version required is
1.22.2
and Dart SDK>=2.12.0-0 <3.0.0
- iOS Xcode version
>= 12
allowUniversalAccessFromFileURLs
andallowFileAccessFromFileURLs
WebView options moved from Android-specific options to cross-platform options- Added
callAsyncJavaScript
name to the list of javaScriptHandlerForbiddenNames - Moved
saveWebArchive
WebView method from Android-specific to cross-platform - Moved
progressBar
InAppBroswer from Android-specific option to cross-platform option and renamed tohideProgressBar
- Renamed
HttpAuthChallenge
toURLAuthenticationChallenge
- Updated
basicConstraints
,subjectKeyIdentifier
,authorityKeyIdentifier
,certificatePolicies
,cRLDistributionPoints
,authorityInfoAccess
attributes type ofX509Certificate
- Updated "WebView.storyboard" for InAppBrowser iOS representation
- Renamed
ShouldOverrideUrlLoadingAction
class toNavigationActionPolicy
- Renamed
ProtectionSpace
class toURLProtectionSpace
- Renamed
ProtectionSpaceHttpAuthCredentials
toURLProtectionSpaceHttpAuthCredentials
- Renamed
CreateWindowRequest
class toCreateWindowAction
- Renamed
initialUrl
toinitialUrlRequest
WebView attribute and made it of typeURLRequest
- Renamed
toolbarTop
InAppBrowser cross-platform option tohideToolbarTop
- Renamed
toolbarBottom
InAppBrowser ios-specific option tohideToolbarBottom
- Removed
debuggingEnabled
WebView option; on Android you should use now theAndroidInAppWebViewController.setWebContentsDebuggingEnabled(bool debuggingEnabled)
static method; on iOS, debugging is always enabled - Removed
androidOnRequestFocus
event because it is never called - Removed
initialHeaders
WebView attribute. UseURLRequest.headers
attribute - Removed
headers
argument fromloadFile
WebView method - Removed
headers
argument fromopenFile
InAppBrowser method - Removed
headers
argument fromloadUrl
WebView method, renamed theurl
argument tourlRequest
and made it of typeURLRequest
- Removed
headers
argument fromopenFile
InAppBrowser method - Removed
headers
argument fromopenUrl
InAppBrowser method, renamed theurl
argument tourlRequest
and made it of typeURLRequest
- Removed
fallback
argument fromChromeSafariBrowser
constructor. Check for availability ofChromeSafariBrowser
if you want show one or the other. - Removed
scheme
argument fromonLoadResourceCustomScheme
WebView event. Use theUri url
parameter now. - Removed
ShouldOverrideUrlLoadingRequest
class and replaced withNavigationAction
- Changed
zoomBy
WebView method signature - Changed type of
urlFile
argument ofinjectCSSFileFromUrl
WebView method toUri
- Changed type of
urlFile
argument ofinjectJavascriptFileFromUrl
WebView method toUri
- Changed return type of
getOriginalUrl
Android-specific WebView method toUri
- Changed return type of
getSafeBrowsingPrivacyPolicyUrl
Android-specific WebView method toUri
- Changed type of
url
argument ofonLoadStart
,onLoadStop
,onLoadError
,onLoadHttpError
,onLoadResourceCustomScheme
,onUpdateVisitedHistory
,onPrint
,onPageCommitVisible
,androidOnSafeBrowsingHit
,androidOnRenderProcessUnresponsive
,androidOnRenderProcessResponsive
,androidOnFormResubmission
,androidOnReceivedTouchIconUrl
WebView events toUri
- Changed type of
baseUrl
andandroidHistoryUrl
arguments ofloadData
WebView method andopenData
InAppBrowser method - Changed
openUrl
InAppBrowser method toopenUrlRequest
- Changed type of
url
argument ofopenWithSystemBrowser
InAppBrowser method toUri
- Changed all InAppBrowser color options type from
String
toColor
- Changed all ChromeSafariBrowser color options type from
String
toColor
- Updated attributes of
ShouldOverrideUrlLoadingRequest
,ServerTrustChallenge
andClientCertChallenge
classes - Changed type of
url
attribute toUri
forJsAlertRequest
,JsAlertConfirm
,JsPromptRequest
classes
- Reverted calling
handler.post
on Android when a WebView is created - Fixed iOS extra bottom padding when opening the keyboard
- Fixed "Build for web not working – The integer literal 9223372036854775807 can't be represented exactly in JavaScript" #429
- Fixed iOS userContentController didReceive WKScriptMessage event when using a WebView created with a
windowId
- Updated
onCreateWindow
,onJsAlert
,onJsConfirm
,onJsPrompt
webview events - Added
onCloseWindow
,onTitleChanged
,onWindowFocus
,onWindowBlur
webview events - Added
androidOnRequestFocus
,androidOnReceivedIcon
,androidOnReceivedTouchIconUrl
,androidOnJsBeforeUnload
,androidOnReceivedLoginRequest
Android-specific webview events - Added
disableDefaultErrorPage
Android-specific webview option - Added
isAvailable
ChromeSafariBrowser static method - Fixed "SFSafariViewController doesn't open like a native iOS modal" #403
- Updated
onCreateWindow
,onJsAlert
,onJsConfirm
,onJsPrompt
webview event - Renamed
OnCreateWindowRequest
class toCreateWindowRequest
- Reverted default
InAppWebView.gestureRecognizers
value to null on Android
- Updated README.md
- Updated missing docs
- Fixed pub.dev Health suggestions and Analysis suggestions
- Added
requestFocusNodeHref
,requestImageRef
,getMetaTags
,getMetaThemeColor
,getScrollX
,getScrollY
,getCertificate
webview methods - Added
WebStorage
,LocalStorage
andSessionStorage
class to managewindow.localStorage
andwindow.sessionStorage
JavaScript Web Storage API - Added
supportZoom
webview option also on iOS - Added
HttpOnly
,SameSite
cookie options - Updated
Cookie
class - Added
animated
option toscrollTo
andscrollBy
webview methods - Added error and message to the
ServerTrustChallenge
class for iOS (class used by theonReceivedServerTrustAuthRequest
event) - Added
contentInsetAdjustmentBehavior
webview iOS-specific option - Added
copy
methods for webview options class - Added
SslCertificate
class andX509Certificate
class and parser - Added
values
property for all the custom Enums - Updated Android workaround to hide the Keyboard when the user click outside on something not focusable such as input or a textarea.
- Fixed
zoomBy
,setOptions
webview methods on Android - Fixed
databaseEnabled
android webview option default value totrue
- Fixed
verticalScrollBarEnabled
andhorizontalScrollBarEnabled
on Android - Fixed error caused by
pauseTimers
on iOS when the WebView has been disposed - Fixed
ignoresViewportScaleLimits
,dataDetectorTypes
,suppressesIncrementalRendering
,selectionGranularity
iOS-specific option when used ininitialOptions
- Fixed
getFavicons
method - Fixed
HttpAuthCredentialDatabase.removeHttpAuthCredential
on Android - Fixed some cases where
takeScreenshot
was not working on Android - Fixed
After upgrade to Android embedding V2, still get Shared.activity is null / NullPointerException on android.content.Context.getResources()
#390
evaluateJavascript
webview method now returnsnull
on iOS if the evaluated JavaScript source returnsnull
getHtml
webview method now could returnnull
if it was unable to get it.- Moved
supportZoom
webview option to cross-platform builtInZoomControls
android webview options changed default value totrue
- Updated
ServerTrustChallenge
class used by theonReceivedServerTrustAuthRequest
event - The method
getOptions
could return null now - Updated
HttpAuthCredentialDatabase.getAllAuthCredentials
method return type
- Updated Android build.gradle version and some androidx properties
- Fixed
Multiple sessions
#371 - Fixed
incognito mode is broken swift
#320
- Updated API docs
- Updated Android context menu workaround
- Calling
onCreateContextMenu
event on iOS also when the context menu is disabled in order to have the same effect as Android - Added
options
attribute toContextMenu
class and createdContextMenuOptions
class - Added Android keyboard workaround to hide the keyboard when clicking other HTML elements, losing the focus on the previous input
- Added
onEnterFullscreen
,onExitFullscreen
webview events #275 - Added Android support to use camera on HTML inputs that requires it, such as
<input type="file" accept="image/*" capture>
#353 - Added
overScrollMode
,networkAvailable
,scrollBarStyle
,verticalScrollbarPosition
,scrollBarDefaultDelayBeforeFade
,scrollbarFadingEnabled
,scrollBarFadeDuration
,rendererPriorityPolicy
,useShouldInterceptRequest
,useOnRenderProcessGone
webview options on Android - Added
pageDown
,pageUp
,saveWebArchive
,zoomIn
,zoomOut
,clearHistory
webview methods on Android - Added
getCurrentWebViewPackage
static webview method on Android - Added
setContextMenu
,clearFocus
methods to webview controller - Added
onPageCommitVisible
webview event - Added
androidShouldInterceptRequest
,androidOnRenderProcessUnresponsive
,androidOnRenderProcessResponsive
,androidOnRenderProcessGone
,androidOnFormResubmission
,androidOnScaleChanged
Android events - Added
toString()
method to various classes in order to have a better output instead of simplyInstance of ...
- Fixed
Print preview is not working? java.lang.IllegalStateException: Can print only from an activity
#128 - Fixed
onJsAlert
,onJsConfirm
,onJsPrompt
forInAppBrowser
on Android - Fixed
onActivityResult
forInAppBrowser
on Android - Fixed
InAppBrowser.openWithSystemBrowser crash on iOS
#358 - Fixed
Attempt to invoke virtual method 'java.util.Set java.util.HashMap.entrySet()' on a null object reference
#367 - Fixed missing
allowsAirPlayForMediaPlayback
iOS webview options implementation
- Android
clearClientCertPreferences
,getSafeBrowsingPrivacyPolicyUrl
,setSafeBrowsingWhitelist
webview methods are static now - Removed iOS event
onDidCommit
; it has been renamed toonPageCommitVisible
and made cross-platform contextMenu
webview attribute isfinal
now
- Added
ContextMenu
andContextMenuItem
classes #235 - Added
onCreateContextMenu
,onHideContextMenu
,onContextMenuActionItemClicked
context menu events - Added
contextMenu
to WebView - Added
disableContextMenu
WebView option - Added
getSelectedText
,getHitTestResult
methods to WebView Controller - Fixed
Confirmation dialog (onbeforeunload) displayed after popped from webview page
#337 - Fixed
CookieManager.setCookie
expiresDate
option - Fixed
Scrolling not smooth on iOS
#341
- Renamed
LongPressHitTestResult
toInAppWebViewHitTestResult
. - Renamed
LongPressHitTestResultType
toInAppWebViewHitTestResultType
.
- Added
HeadlessInAppWebView
class to be able to use WebView in headless mode - Added
close
,addMenuItem
,addMenuItems
methods toChromeSafariBrowser
- Added
ChromeSafariBrowserMenuItem
class in order to create custom menu item forChromeSafariBrowser
- Fixed
InAppWebView.channel
null when used byInAppBrowserActivity
on android - Fixed iOS presentationStyle affecting only dismiss animation #305
- Renamed
InAppWebViewWidgetOptions
toInAppWebViewGroupOptions
.
- Added
Promise
javascript polyfill for webviews that doesn't support it forwindow.flutter_inappwebview.callHandler
- Added
getDefaultUserAgent
static method toInAppWebViewController
- Added
onUpdateVisitedHistory
,onPrint
,onLongPressHitTestResult
event - Added
androidOnGeolocationPermissionsHidePrompt
event for Android webview - Added
iosOnWebContentProcessDidTerminate
,iosOnDidCommit
,iosOnDidReceiveServerRedirectForProvisionalNavigation
events for iOS webview - Added
supportMultipleWindows
webview option for Android - Added
regexToCancelSubFramesLoading
webview option for Android to cancel subframe requests onshouldOverrideUrlLoading
event based on a Regular Expression - Added
getContentHeight
,zoomBy
,printCurrentPage
,getScale
methods - Added
getOriginalUrl
webview method for Android - Added
reloadFromOrigin
,hasOnlySecureContent
webview methods for iOS - Added
automaticallyAdjustsScrollIndicatorInsets
,accessibilityIgnoresInvertColors
,decelerationRate
,alwaysBounceVertical
,alwaysBounceHorizontal
,scrollsToTop
,isPagingEnabled
,maximumZoomScale
,minimumZoomScale
webview options for iOS - Added
WebStorageManager
class which manages the web storage used by WebView instances - Added
packageName
#229 andkeepAliveEnabled
ChromeCustomTab options for Android - Updated for Flutter 1.12 new Java Embedding API (Android)
- Updated
clearCache
for Android - Updated default value for
domStorageEnabled
anddatabaseEnabled
options totrue
for Android - Merged "Fixes null error when calling getOptions for InAppBrowser class" #214 (thanks to panndoraBoo)
- Merged "Fixes crash onConsoleMessage iOS forced unwrapping" #228 (thanks to tokonu)
- Merged "Fix HTTPCookie.secure" #311 (thanks to xtyxtyx)
- Merged "Fix config options for Android release builds" #295 (thanks to wwwdata)
- Merged "fix scrollbar on iOS always show if not disable scroll" #256 (thanks to phamnhuvu-dev)
- Merged "Fix crash on nil/invalid URL (iOS)" #262 (thanks to AlexVincent525)
- Merged "Fix crash when
prompt
was called on Android Q." #262 (thanks to AlexVincent525) - Fix for Android and iOS
InAppBrowser
for some controller methods not exposed. - Fixed "App Crashes after clicking on dropdown (Using inappwebview)" #182
- Fixed "webview can not be released when in ios" #225. Now the iOS WebView is released from memory when it is disposed from Flutter.
- Fixed "Setting of presentationStyle not working on iOS" #213
- Fixed "Android zoom issues" #270
- Updated
shouldOverrideUrlLoading
event:- the
url
parameter has been moved inside an instance ofShouldOverrideUrlLoadingRequest
class - it has a return type
ShouldOverrideUrlLoadingAction
to allow or cancel navigation instead of cancel every time the request
- the
- Renamed
onTargetBlank
toonCreateWindow
- Deleted
useOnTargetBlank
webview option - Making methods available only for the specific platform more explicit: moved all the webview's controller methods for Android inside
controller.android
and all the webview's controller methods for iOS insidecontroller.ios
- Making events available only for the specific platform more explicit:
- Renamed
onSafeBrowsingHit
toandroidOnSafeBrowsingHit
- Renamed
onGeolocationPermissionsShowPrompt
toandroidOnGeolocationPermissionsShowPrompt
- Renamed
onPermissionRequest
toandroidOnPermissionRequest
- Renamed
- Updated attribute names for
InAppWebViewWidgetOptions
,InAppBrowserClassOptions
andChromeSafariBrowserClassOptions
classes - Renamed and updated
onNavigationStateChange
toonUpdateVisitedHistory
- Renamed all iOS and Android webview options class
- Renamed Chrome Custom Tab
addShareButton
option toaddDefaultShareMenuItem
- Renamed ChromeSafariBrowser
onLoaded
toonCompletedInitialLoad
- Fix docs
- Added
pause
andresume
methods for Android. - Added
pauseTimers
andresumeTimers
methods. - Added new
historyUrl
optional parameter forloadData
andopenData
methods andInAppWebViewInitialData
class. It is used only on Android. - Fix "problems with onReceivedHttpAuthRequest when initialData is used" #201
- Fix "System ui (status bar and navigation bar) doesn't hide automatically" #202
- Fixed error "java.lang.ClassCastException: $Proxy1 cannot be cast to android.view.WindowManagerImpl" on Android when using native alert dialogs
- Added
onPermissionRequest
event. This event is fired when the webview is requesting permission to access the specified resources and the permission currently isn't granted or denied (available only on Android).
- Merged "Avoid null pointer exception after webview is disposed" #116 (thanks to robsonfingo)
- Merged "Remove async call in close" #119 (thanks to benfingo)
- Merged "Android takeScreenshot does not work properly." #122 (thanks to PauloMelo)
- Merged "Resolving gradle error." #144 (thanks to Klingens13)
- Merged "Create issue and pull request templates" #150 (thanks to deandreamatias)
- Merged "Fix abstract method error && swift version error" #155 (thanks to AlexVincent525)
- Merged "migrating to swift 5.0" #162 (thanks to fattiger00)
- Merged "Update readme example" #178 (thanks to SebastienBtr)
- Merged "handle choose file callback in android" #183 (thanks to crazecoder)
- Merged "add initialScale in android" #186 (thanks to crazecoder)
- Added
horizontalScrollBarEnabled
andverticalScrollBarEnabled
options to enable/disable the corresponding scrollbar of the WebView #165 - Added
onDownloadStart
event anduseOnDownloadStart
option: event fires when the WebView recognizes and starts a downloadable file. - Added
onLoadResourceCustomScheme
event andresourceCustomSchemes
option to set custom schemes that WebView must handle to load resources - Added
onTargetBlank
event anduseOnTargetBlank
option to manage links withtarget="_blank"
- Added
ContentBlocker
,ContentBlockerTrigger
andContentBlockerAction
classes and thecontentBlockers
option that allows to define a set of rules to use to block content in the WebView - Added new WebView options:
minimumFontSize
,debuggingEnabled
,preferredContentMode
,applicationNameForUserAgent
,incognito
,cacheEnabled
,disableVerticalScroll
,disableHorizontalScroll
- 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
- Added new iOS WebView options:
isFraudulentWebsiteWarningEnabled
,selectionGranularity
,dataDetectorTypes
,sharedCookiesEnabled
- Added
onGeolocationPermissionsShowPrompt
event andGeolocationPermissionShowPromptResponse
class (available only for Android) - Added
startSafeBrowsing
,setSafeBrowsingWhitelist
andgetSafeBrowsingPrivacyPolicyUrl
methods (available only for Android) - Added
clearSslPreferences
andclearClientCertPreferences
methods (available only for Android) - Added
onSafeBrowsingHit
event (available only for Android) - Added
onJsAlert
,onJsConfirm
andonJsPrompt
events to manage javascript popup dialogs - Added
onReceivedHttpAuthRequest
event - Added
clearCache
,scrollTo
,scrollBy
,getHtml
,injectJavascriptFileFromAsset
andinjectCSSFileFromAsset
methods method - Added
HttpAuthCredentialDatabase
class - Added
onReceivedServerTrustAuthRequest
andonReceivedClientCertRequest
events to manage SSL requests - Added
onFindResultReceived
event,findAllAsync
,findNext
andclearMatches
methods - Added
shouldInterceptAjaxRequest
,onAjaxReadyStateChange
,onAjaxProgress
andshouldInterceptFetchRequest
events withuseShouldInterceptAjaxRequest
anduseShouldInterceptFetchRequest
webview options - Added
onNavigationStateChange
andonLoadHttpError
events - Fun: added
getTRexRunnerHtml
andgetTRexRunnerCss
methods to get html (with javascript) and css to recreate the Chromium's t-rex runner game
- Deleted
WebResourceRequest
class - Updated
WebResourceResponse
class - Updated
ConsoleMessage
class - Updated
ConsoleMessageLevel
class - Updated
onLoadResource
event - Updated
CookieManager
class - WebView options are now available with the new corresponding classes:
InAppWebViewOptions
,AndroidInAppWebViewOptions
,iOSInAppWebViewOptions
,InAppBrowserOptions
,AndroidInAppBrowserOptions
,iOSInAppBrowserOptions
,AndroidChromeCustomTabsOptions
andiOSSafariOptions
- Renamed
getFavicon
togetFavicons
, now it returns a list of all favicons (List<Favicon>
) found - Renamed
injectScriptFile
toinjectJavascriptFileFromUrl
- Renamed
injectScriptCode
toevaluateJavascript
- Renamed
injectStyleCode
toinjectCSSCode
- Renamed
injectStyleFile
toinjectCSSFileFromUrl
- Merged "added a shared WKProcessPool for webview instances" #198 (thanks to robertcnst)
- Fixed iOS setCookie.
- Merged "Add new option to control the contentMode in Android platform" #101 (thanks to DreamBuddy)
- Merged "Fix crash on xcode 10.2" #107 (thanks to robsonfingo)
- Merged "Remove headers_build_phase from example's Podfile" #108 (thanks to robsonfingo)
- Fixed "Make html5 video fullscreen" for Android #43
- Fixed "AllowsInlineMediaPlayback not working" for iOS #73
- Merged "Adds a transparentBackground option for iOS and Android" #86 (thanks to matthewlloyd)
- Merged "The 'open' method requires an options dictionary" #87 (thanks to matthewlloyd)
- Merged "iOS: Call setNeedsLayout() in scrollViewDidScroll()" #88 (thanks to matthewlloyd)
- Fixed "java.lang.RuntimeException: Methods marked with @UiThread must be executed on the main thread." #98 (thanks to DreamBuddy)
- Fixed "app force close/crash when enabling zoom and repeatedly changing orientation and zoomin zoomout" #93
- Added
displayZoomControls
webview option for Android - Fixed "Compatibility with other plugins" #80
- Merged "Add null checks around calls to InAppWebView callbacks" #85 (thanks to matthewlloyd)
- Fix InAppBrowser crashes the app when i change the page "Lost connection" #74
- Fix javascript
...args
parameter ofwindow.flutter_inappwebview.callHandler()
- Merged Enable setTextZoom function of Android WebViewSetting #81 (thanks to YouCii)
- Merged bug fix for android build: Android dependency 'androidx.core:core' has different version for the compile (1.0.0) and runtime (1.0.1) classpath #83 (thanks to cinos1)
- Fixed README.md and
addJavaScriptHandler
method documentation
- Breaking change for
addJavaScriptHandler
andremoveJavaScriptHandler
methods. addJavaScriptHandler
method can return data to JavaScript usingPromise
#46- added
flutterInAppBrowserPlatformReady
JavaScript event to wait until the platform is ready #64
- Fixed Unable to load initialFile on iOS #56
- Some code cleanup
Breaking changes:
- Fixed Flutter AndroidX compatibility, the latest version that doesn't use
AndroidX
is0.6.0
(thanks to juicycleff).
- added support for iOS inline native WebView integrated in the flutter widget tree
- updated example folder (thanks to marquesinijatinha)
- Fixed bug where passing null to expiresDate failed (thanks to Sense545)
- Fixed iOS error: encode resourceURL (thanks to igtm)
- Fixed iOS error: Double value cannot be converted to Int because the result would be greater than Int.max in 32-bit devices (thanks to huzhiren)
- Fixed iOS error: problem in ChromeSafariBrowser (thanks to marquesinijatinha)
- Fixed Android build error caused by gradle and build gradle versions (thanks to tje3d)
- Updated
uuid
dependency to^2.0.0
- updated
pubspec.yaml
- updated
README.md
- added
getUrl
method for theInAppWebViewController
class - added
getTitle
method for theInAppWebViewController
class - added
getProgress
method for theInAppWebViewController
class - added
getFavicon
method for theInAppWebViewController
class - added
onScrollChanged
event for theInAppWebViewController
andInAppBrowser
class - added
onBrowserCreated
event for theInAppBrowser
class - added
openData
method for theInAppBrowser
class - added
initialData
property for theInAppWebView
widget
- added
WebHistory
andWebHistoryItem
class - added
getCopyBackForwardList
,goBackOrForward
,canGoBackOrForward
andgoTo
methods for theInAppWebViewController
class
- added
CookieManager
class
- fixed some missing
result.success()
on Android and iOS - added
postUrl()
method for theInAppWebViewController
class - added
loadData()
method for theInAppWebViewController
class
- updated README.md
- added initial support for Inline WebViews using the
InAppWebView
widget - added
InAppBrowser.openFile()
method - added
InAppBrowser.onProgressChanged()
event - moved
InAppBrowser
WebView related functions on theInAppWebViewController
class - added
InAppLocalhostServer
class - added
InAppWebView.canGoBack()
andInAppWebView.canGoForward()
methods - removed
openWithSystemBrowser
andisLocalFile
option. Now use the corresponding method - code refactoring
- added
InAppBrowser.takeScreenshot()
- added
InAppBrowser.setOptions()
- added
InAppBrowser.getOptions()
- removed
target
parameter toInAppBrowser.open()
method. To open the url on the system browser, use theopenWithSystemBrowser: true
option - fixes for the
_ChannelManager
private class - fixed
EXC_BAD_INSTRUCTION
onLoadStart in Swift - added
openWithSystemBrowser
andisLocalFile
options - added
InAppBrowser.openWithSystemBrowser
method - added
InAppBrowser.openOnLocalhost
method - added
InAppBrowser.loadFile
method - added
InAppBrowser.isOpened
method
- fixed WebView.storyboard path for iOS
- fixed README.md example
- fixed WebView.storyboard to deployment target 8.0
- added
InAppBrowser.onLoadResource()
method. The event fires when the InAppBrowser webview loads a resource - added
InAppBrowser.addJavaScriptHandler()
andInAppBrowser.removeJavaScriptHandler()
methods to add/remove javascript message handlers - removed
keyboardDisplayRequiresUserAction
from iOS available options - now the
url
parameter ofInAppBrowser.open()
is optional. The default value isabout:blank
- added
InAppBrowser.onConsoleMessage()
method to manage console messages - fixed
InAppBrowser.injectScriptCode()
method when there is not a return value
- added support of Chrome CustomTabs for Android
- added support of SFSafariViewController for iOS
- added the ability to create multiple instances of browsers
- updated/added new methods
- updated UI of android/iOS in-app browser
- code cleanup
- added new options when opening the in-app browser
Initial release.