- 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
- Merge "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
- Merge "Upgraded appcompat to 1.2.0-rc-02" #465 (thanks to andreidiaconu)
- Merge "Added missing field 'headers' which returned by WebResourceResponse.toMap()" #490 (thanks to Doflatango)
- Merge "Fix: added iOS fallback module import" #466 (thanks to Eddayy)
- Merge "Fix NullPointerException after taking a photo by a camera app on Android" #492 (thanks to AAkira)
- Merge "iOS CookieManager.getCookies - Check that URL has suffix of cookie do…" #658 (thanks to arneke)
- Merge "Add NTLM Auth" #634 (thanks to albatrosify)
- Merge "iOS ChromeSafariBrowserManager - Fixing unnecessary casting of rootViewController to FlutterViewController" #567 (thanks to gunantosteven)
- Merge "Fix _channel.invokeMethod name for injectCSSFileFromUrl method" #645 (thanks to omralcrt)
- Merge "Add android media intents on wildcard input accept" #620 (thanks to cbodin)
- Merge "Add ChromeSafariBrowser support for Android 11" #538 (thanks to DRSchlaubi)
- Merge "fix(iOS): missing implementation of method zoomBy" #670 (thanks to pcqpcq)
- Merge "[mod] Fix all issues relate to long click in Android version 7.0 (#657, #527)" #671 (thanks to MrNinja)
- Merge "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 - Merge "Fixes null error when calling getOptions for InAppBrowser class" #214 (thanks to panndoraBoo)
- Merge "Fixes crash onConsoleMessage iOS forced unwrapping" #228 (thanks to tokonu)
- Merge "Fix HTTPCookie.secure" #311 (thanks to xtyxtyx)
- Merge "Fix config options for Android release builds" #295 (thanks to wwwdata)
- Merge "fix scrollbar on iOS always show if not disable scroll" #256 (thanks to phamnhuvu-dev)
- Merge "Fix crash on nil/invalid URL (iOS)" #262 (thanks to AlexVincent525)
- Merge "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).
- Merge "Avoid null pointer exception after webview is disposed" #116 (thanks to robsonfingo)
- Merge "Remove async call in close" #119 (thanks to benfingo)
- Merge "Android takeScreenshot does not work properly." #122 (thanks to PauloMelo)
- Merge "Resolving gradle error." #144 (thanks to Klingens13)
- Merge "Create issue and pull request templates" #150 (thanks to deandreamatias)
- Merge "Fix abstract method error && swift version error" #155 (thanks to AlexVincent525)
- Merge "migrating to swift 5.0" #162 (thanks to fattiger00)
- Merge "Update readme example" #178 (thanks to SebastienBtr)
- Merge "handle choose file callback in android" #183 (thanks to crazecoder)
- Merge "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
- Merge "added a shared WKProcessPool for webview instances" #198 (thanks to robertcnst)
- Fixed iOS setCookie.
- Merge "Add new option to control the contentMode in Android platform" #101 (thanks to DreamBuddy)
- Merge "Fix crash on xcode 10.2" #107 (thanks to robsonfingo)
- Merge "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
- Merge "Adds a transparentBackground option for iOS and Android" #86 (thanks to matthewlloyd)
- Merge "The 'open' method requires an options dictionary" #87 (thanks to matthewlloyd)
- Merge "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
- Merge "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()
- Merge Enable setTextZoom function of Android WebViewSetting #81 (thanks to YouCii)
- Merge 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.