- Added Android Hybrid Composition support "Use PlatformViewLink widget for Android WebView" #462 (thanks to plateaukao and tneotia)
- 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)
- 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
- 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.