Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for injectedJavaScriptBeforeContentLoaded on Android #1099

Conversation

SRandazzo
Copy link
Contributor

Summary

This is the Android counterpart to #1038

This is my first time writing Java/Android so any feedback is much appreciated.

Test Plan

I am running an iOS + Android ReactNative application and have verified that the injected JS behaves the same on both platforms

What's required for testing (prerequisites)?

An Android RN app with a WebView and some JS to inject

Compatibility

OS Implemented
iOS
Android

Checklist

  • I have tested this on a device and a simulator
  • I added the documentation in README.md
  • I updated the typed files (TS and Flow)
  • I added a sample use of the API in the example project (example/App.js)

@congnt171
Copy link

Up vote. I found my issue because expo using old version react-native-webview.
Thanks!

@SRandazzo
Copy link
Contributor Author

Found a bug in this - will update when it's resolved!

@SRandazzo
Copy link
Contributor Author

Ok bug is resolved. I could use some extra eyes on whether or not placing the execution of the code inside of onPageStarted is the correct approach.

I originally gated the execution with a boolean flag so it would only run "once", but that caused it to not execute at the proper time

@Titozzz
Copy link
Collaborator

Titozzz commented Jan 3, 2020

@SRandazzo
Copy link
Contributor Author

SRandazzo commented Jan 3, 2020

Thanks @Titozzz - I admit I don't fully understand here as I am new to Android. I tried doing some reading but could you elaborate for my knowledge?

Is this the part of the docs you are referring to:

Compatibility note. Applications targeting Build.VERSION_CODES.N or later, JavaScript state from an empty WebView is no longer persisted across navigations like loadUrl(java.lang.String). 
For example, global variables and functions defined before calling loadUrl(java.lang.String) will not exist in the loaded page. 
Applications should use addJavascriptInterface(Object, String) instead to persist JavaScript objects across navigations.

@congnt171
Copy link

congnt171 commented Jan 6, 2020

You can refer to this here:
brunobar79#3
brunobar79#4
brunobar79#5
I think this is helpful for you.
Thanks!

@Titozzz
Copy link
Collaborator

Titozzz commented Jan 6, 2020

Is this the part of the docs you are referring to

Yes exactly this says that it won't work :/

@shirakaba
Copy link
Contributor

Yes exactly this says that it won't work :/

I'm not reading it like that. It just says that persisted state won't survive a navigation (just as, if you evaluate any JS in a browser's web inspector that mutates the window, any state imparted upon the window would be lost upon refreshing the page).

This is fine for the use-case of injectedJavaScriptBeforeContentLoad – our script would be able to store state into the page upon onPageStarted (which I believe is after the navigation has been committed to), and that state would only be lost upon navigating away from the page. To be honest, that's the behaviour I'd expect and desire, and I'm sure that it's consistent with the behaviour of iOS WKUserScripts.

One way to characterise the behaviour: Use my Test Plan in #1119. Injecting into all frames is out-of-scope for this PR, but you can do the test concerning injecting into just the main frame.

@shirakaba
Copy link
Contributor

shirakaba commented Jan 8, 2020

Ok bug is resolved. I could use some extra eyes on whether or not placing the execution of the code inside of onPageStarted is the correct approach.

Docs for onPageStarted:

Notify the host application that a page has started loading. This method is called once for each main frame load so a page with iframes or framesets will call onPageStarted one time for the main frame. This also means that onPageStarted will not be called when the contents of an embedded frame changes, i.e. clicking a link whose target is an iframe, it will also not be called for fragment navigations (navigations to #fragment_id).

So this is indeed the appropriate lifecycle event for injectedJavaScriptBeforeContentLoaded, but only if injecting exclusively into the main frame (which is equivalent to the current iOS behaviour, until my PR #1119 lands). The main frame is the most important one to support to begin with, either way.

Unfortunately, there are no lifecycle methods that mention that they are called for frames other than the main frame 🙁 I can't find any mention online of any Android WebView native methods for injecting JS into non-main frames (only JSObjects) either, and there's no way to work around that lack of functionality.

@congnt171
Copy link

Any update ?, i hope this feauture soon avaiable.

@safaiyeh
Copy link
Collaborator

@SRandazzo Could you update the docs with this prop and make sure to note the capability issue with versions >= Android N?

@safaiyeh
Copy link
Collaborator

@congnt171 I'm aiming to merge this in with @shirakaba's iOS PR #1119 to have parity between iOS + Android for injectedJavaScriptBeforeContentLoaded

@shirakaba
Copy link
Contributor

shirakaba commented Jan 15, 2020

@muthuspark has an interesting workaround for injecting JS into iframes. It may only work post-page-load, i.e. injectedJavaScript (and is therefore irrelevant to this present PR, which concerns pre-page-load – injectedJavaScriptBeforeContentLoaded), but it's interesting to learn of and would be worth investigating for a follow-up PR:

#824

For android, I am overriding the public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) method to intercept my HTML and add the required Javascript into it.

Note that it is ultimately a workaround and not a dedicated solution, so there may be subtle deficiencies in its methodology that are unclear (e.g. relating to page load lifecycle or security limitations).

@SRandazzo
Copy link
Contributor Author

Thanks all for the helpful insight!
@safaiyeh i've updated the docs with a note on Android compatibility for this API

@congnt171
Copy link

Most injectJavascript needs to be done before it is fully loaded to get the best results. So I think this is a problem that should be carefully reviewed and quickly included in order to improve.
Thanks @SRandazzo

@shirakaba
Copy link
Contributor

I suppose that injecting JS after content loading could be achieved crudely by listening for the document “loaded” event firing from before the content has loaded. We’d best keep that in mind as an option.

@congnt171
Copy link

I suppose that injecting JS after content loading could be achieved crudely by listening for the document “loaded” event firing from before the content has loaded. We’d best keep that in mind as an option.

I think that's not a good idea. Doing so we can not be sure "loaded inject javascript" or not. This will result in heterogeneous results between each download.

@shirakaba
Copy link
Contributor

shirakaba commented Feb 10, 2020

I think that's not a good idea. Doing so we can not be sure "loaded inject javascript" or not. This will result in heterogeneous results between each download.

@congnt171 I'm not sure the results would be different between each download; could you explain your concerns?

Incidentally, it looks like there are two lifecycle hooks we could use.

The DOMContentLoaded event fires when the initial HTML document has been completely loaded and parsed, without waiting for stylesheets, images, and subframes to finish loading.

DOMContentLoaded

The load event is fired when the whole page has loaded, including all dependent resources such as stylesheets and images. This is in contrast to DOMContentLoaded, which is fired as soon as the page DOM has been loaded, without waiting for resources to finish loading.

load

On iOS, WKUserScriptInjectionTimeAtDocumentEnd, which is how react-native-wkwebview implements injectedJavaScript (and how my current PR is implementing it) has the following meaning:

Inject the script after the document finishes loading, but before other subresources finish loading.

If I'm understanding correctly, WebKit injects WKUserScriptInjectionTimeAtDocumentEnd scripts at the FrameLoader::finishedParsing() point of the codebase. Both that and the above description seem to point to DOMContentLoaded being the more appropriate lifecycle event of the two.

If we injected specifically upon the DOMContentLoaded event, do you still think that would be a bad idea?

@shirakaba
Copy link
Contributor

shirakaba commented Feb 19, 2020

Now that Microsoft have introduced an examples app, I've forked this PR to shirakaba/updatable-user-scripts-android and have added an example to test injection:

Partial test pass

Only a partial pass because Android can only inject into the main frame at present. Options for injecting into all frames are limited, but I've raised one possible approach to try to implement it.

image

Test fail

Of concern: upon hot reload, injection sometimes works, but sometimes doesn't. This possibly indicates that the android implementation isn't handling props updates well. Or a race condition with loading. Hard to tell.

image


Screenshots of the expected behaviour for a full test pass are visible in my related PR for iOS.

@shirakaba
Copy link
Contributor

shirakaba commented Feb 19, 2020

I played around with the shouldInterceptRequest API, but sadly I don't see any way it (nor any other available android.webkit.WebViewClient API) could be used to inject on all frames. I think Android is fundamentally limited to single-frame JS injection.

@safaiyeh if @SRandazzo updated this branch to merge the latest changes from master, would anything else be needed to merge this (and my corresponding #1119 )?

Note: equally, if @SRandazzo is busy, I could open a PR from shirakaba/updatable-user-scripts-android, which – as I have failed to add multi-frame support – is now just a branch that has merged our two PRs together and is up-to-date with master.

@sapjax
Copy link

sapjax commented Jun 12, 2020

Any update ? 😲

Copy link
Member

@jamonholmgren jamonholmgren left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This appears ready to merge.

@jamonholmgren jamonholmgren added the Maintainer: ready to publish This PR has been reviewed and is ready to be published label Jun 13, 2020
@jamonholmgren jamonholmgren merged commit ac4e05e into react-native-webview:master Jun 13, 2020
react-native-community-bot pushed a commit that referenced this pull request Jun 13, 2020
# [10.3.0](v10.2.3...v10.3.0) (2020-06-13)

### Features

* **android:** Add support for injectedJavaScriptBeforeContentLoaded on Android ([#1099](#1099) by @SRandazzo and @ [@shirakaba](https://github.com/shirakaba)) ([ac4e05e](ac4e05e))
@react-native-community-bot
Copy link
Collaborator

🎉 This PR is included in version 10.3.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@jamonholmgren
Copy link
Member

On behalf of the RN WebView maintainers, thanks everyone for your patience and all your help! I'm excited to finally ship this!

@SRandazzo
Copy link
Contributor Author

Wow this is great! Thank you all for your work on this, big thanks to @shirakaba who made huge contributions that made this possible. Open source win!

@panda0603
Copy link

injectedJavaScriptBeforeContentLoaded is now available for android now, am I correct?
API reference still says it is only available for iOS, macOS only.

@sapjax
Copy link

sapjax commented Jun 17, 2020

This PR works on some Android device, but don't work on some other device.

I found the injected script execute when onPageStarted, but when onPageFinished the JS state set before is not exist.

for example:

 injectedJavaScriptBeforeContentLoaded={"window.x= 123; alert(window.x)"}
 injectedJavaScript={"alert(window.x)"}

It shows dialog as :

123
undefined

A related issue of Webview: https://groups.google.com/a/chromium.org/forum/#!topic/android-webview-dev/W6IBFu9f6vE

image

@shirakaba
Copy link
Contributor

@sapjax I believe the JS injection is implemented correctly (this PR works perfectly for HTML pages created as a string but faces problems for real hosted web pages, as I’ve noted in the documentation and in this thread). I think that the issue you’re seeing is the unsolved issue regarding lifecycle race conditions, which I hope someone can solve in a follow-up PR.
See: #1250

@shirakaba
Copy link
Contributor

shirakaba commented Jun 17, 2020

@sapjax I’ve just checked the Chromium issue that you linked. This WebView is based on WebKit, but the pattern that they mention there – namely of erasing the JS Context stores on Window – may also match what I was finding in my debug above. So rather than a race condition, it could equally be explained by a WebKit bug in which the window’s context is reset upon page load. Unfortunately, I wasn’t able to find any solution myself. I think I noted that attaching a debugger actually caused the problem to disappear, which made it impossible for me to dig any deeper. 😕

@sapjax
Copy link

sapjax commented Jun 18, 2020

@shirakaba
You are right, It's not a race condition, It caused by erased JS Context after onLoadStarted, On my Android device, I can recurrence this problem with attaching debugger every time, But on the android simulator and other Android devices, there's no problem.

@KingAmo
Copy link

KingAmo commented Aug 12, 2020

@sapjax @shirakaba in my case, injectedJavaScriptBeforeContentLoaded does not work anyway, even attaching a debugger. i test it on a HuaWei phone with EMUI 10.0.0

@kilmas
Copy link

kilmas commented Aug 24, 2020

I have the same problem,Most of the time, injectedJavaScriptBeforeContentLoaded doesn't achieve the same effect as in IOS

@shirakaba I think we've ran into similar racing conditions (failing to properly inject in ~50% cases) when using onPageStarted for before-load JS injection (details in status-im/status-react#10273).

Using shouldInterceptRequest for JS injection solved the problem for us. shouldInterceptRequest then inserts a <script ...> tag into the page input stream once <head> tag is found (see this commit).

github-actions bot pushed a commit to CodinDotTop/react-native-webview that referenced this pull request Sep 13, 2023
# 1.0.0 (2023-09-13)

### Bug Fixes

* **android:** add null reference check for onMessage on android ([#770](https://github.com/CodinDotTop/react-native-webview/issues/770)) ([12db695](https://github.com/CodinDotTop/react-native-webview/commit/12db6956a98faeb381bf495eff1549a274ef654f))
* **docs:** Reference documentation updates for menuItems ([#3046](https://github.com/CodinDotTop/react-native-webview/issues/3046)) ([fcd6050](https://github.com/CodinDotTop/react-native-webview/commit/fcd60508dc861be651dd7d8e748eade98e44ad75))
* **ios:** Fixes new ios clearCache method where it wasn't getting attached ([#3122](https://github.com/CodinDotTop/react-native-webview/issues/3122) by [@jamonholmgren](https://github.com/jamonholmgren) and [@robinheinze](https://github.com/robinheinze)) ([f101eaf](https://github.com/CodinDotTop/react-native-webview/commit/f101eafd1d35b28ab16185c7f9164d5c6512f097))
* build on 0.72 new arch ([#2997](https://github.com/CodinDotTop/react-native-webview/issues/2997)) ([7ceeb2f](https://github.com/CodinDotTop/react-native-webview/commit/7ceeb2f959c5477956386fc55f2da4220c917889))
* Revert didMoveToSuperview back to didMoveToWindow ([#3041](https://github.com/CodinDotTop/react-native-webview/issues/3041)) ([836f717](https://github.com/CodinDotTop/react-native-webview/commit/836f71768ee03481d1e09af6d0156775ac988b5e))
* **android:** add null-pointer check for `activity` before creating `RNCWebChromeClient` (closes [#1406](https://github.com/CodinDotTop/react-native-webview/issues/1406), [#2190](https://github.com/CodinDotTop/react-native-webview/issues/2190)) ([#2240](https://github.com/CodinDotTop/react-native-webview/issues/2240)) ([9b14584](https://github.com/CodinDotTop/react-native-webview/commit/9b14584b78c386b0282a4ae99f6b47af1694e0a3))
* **android:** Adding mavenCentral() as jcenter() is shutting down ([#1961](https://github.com/CodinDotTop/react-native-webview/issues/1961)) ([015054c](https://github.com/CodinDotTop/react-native-webview/commit/015054c2f5db0a3931dba3b44a43041fba155cb5))
* **android:** cacheEnabled - make compatible with android sdk-33 ([#2583](https://github.com/CodinDotTop/react-native-webview/issues/2583)) ([7f78f20](https://github.com/CodinDotTop/react-native-webview/commit/7f78f206170b0a8f29b467fa2cc546544e9cd300))
* **android:** Changing ThemedReactContext to ReactContext to allow custom stuff ([#1994](https://github.com/CodinDotTop/react-native-webview/issues/1994)) ([7b71364](https://github.com/CodinDotTop/react-native-webview/commit/7b71364a9cb91d43b10e1c9dcfabf75253d3514d))
* **android:** fixed issue with refactor ([ff08b11](https://github.com/CodinDotTop/react-native-webview/commit/ff08b11e500334198e1cf2cc02724ef10fb18c91)), closes [#2538](https://github.com/CodinDotTop/react-native-webview/issues/2538)
* **android:** onPermissionRequest duplicate ([#2002](https://github.com/CodinDotTop/react-native-webview/issues/2002)) ([bba5907](https://github.com/CodinDotTop/react-native-webview/commit/bba590790662336ddb5f444737233bb88e6f48ac))
* **android:** read minSdkVersion from root project ([#1960](https://github.com/CodinDotTop/react-native-webview/issues/1960)) ([768092b](https://github.com/CodinDotTop/react-native-webview/commit/768092bba743c93aaf9c07e75cf908b62d7e7e6c))
* **android:** Respect "filename*" parameter in the field Content-Disposition when detecting filenames for downloading. ([#2767](https://github.com/CodinDotTop/react-native-webview/issues/2767)) ([47c05b0](https://github.com/CodinDotTop/react-native-webview/commit/47c05b0fba21fde471ca6c3aacf7b75756b6a52e))
* **android:** revert change ThemedReactContext to ReactContext ([8a45fcf](https://github.com/CodinDotTop/react-native-webview/commit/8a45fcf7f9d95ca589b0af9413911cfa3d25338a))
* **autolink-windows:** enable autolinking on Windows ([9114b78](https://github.com/CodinDotTop/react-native-webview/commit/9114b78d419d9d5a548e545b790a9c025e46dd63))
* **ci:** Upgrade to node 14 ([0b0a406](https://github.com/CodinDotTop/react-native-webview/commit/0b0a4069c8396c9e3c9b911d3db4f5da2a67e0a2))
* **deps:** Bump React Native version range to accept 0.64 ([#1967](https://github.com/CodinDotTop/react-native-webview/issues/1967) by [@dulmandakh](https://github.com/dulmandakh)) ([863a0e2](https://github.com/CodinDotTop/react-native-webview/commit/863a0e2408c90b1d1225e812ca80e138942c041b))
* **ios:** support requestFocus ([#2501](https://github.com/CodinDotTop/react-native-webview/issues/2501)) ([41ae896](https://github.com/CodinDotTop/react-native-webview/commit/41ae8965115b7a028d5409dd4dc36bd4544f8300))
* **iOS:** add null check safety for adding mainDocumentURL to event ([#2662](https://github.com/CodinDotTop/react-native-webview/issues/2662)) ([6c00c1f](https://github.com/CodinDotTop/react-native-webview/commit/6c00c1f9f38513f95bc44d9f3dba668c79629348))
* **iOS:** Adding the contentProcessDidTerminate property into useWebViewLogic hook arguments (fixes [#2559](https://github.com/CodinDotTop/react-native-webview/issues/2559)) ([#2580](https://github.com/CodinDotTop/react-native-webview/issues/2580)) ([045fb60](https://github.com/CodinDotTop/react-native-webview/commit/045fb602e374374beba56f6316920985c297b34f))
* **iOS:** Foundation Import ([#2917](https://github.com/CodinDotTop/react-native-webview/issues/2917)) ([a2eec17](https://github.com/CodinDotTop/react-native-webview/commit/a2eec1700271f43af1ba43bd95ad60be11d55877)), closes [#2915](https://github.com/CodinDotTop/react-native-webview/issues/2915)
* **macOS:** address regression due to didMoveToSuperview ([#3006](https://github.com/CodinDotTop/react-native-webview/issues/3006)) ([41576ca](https://github.com/CodinDotTop/react-native-webview/commit/41576ca9a7d5d0a9470f2e4227a9d2128d7727c2))
* Revert "Missing android.support.FILE_PROVIDER_PATHS meta-data on some OEMs ([#2952](https://github.com/CodinDotTop/react-native-webview/issues/2952))" ([e17a79b](https://github.com/CodinDotTop/react-native-webview/commit/e17a79b9aa1ea41c9e52ae67fb6afd91cfa144f2))
* **android:** Prevent crash from unsupported URI downloads ([#2328](https://github.com/CodinDotTop/react-native-webview/issues/2328)) ([7f95a7f](https://github.com/CodinDotTop/react-native-webview/commit/7f95a7fff4fd09c68bec06ee344581ba3da2295d))
* **Android:** Don't crash while downloading file with % in filename ([#2861](https://github.com/CodinDotTop/react-native-webview/issues/2861)) ([81e3aa4](https://github.com/CodinDotTop/react-native-webview/commit/81e3aa4ecd531220d1ec1da0711195dc6ebdc781))
* **dependencies:** Simplify react-native version management ([f8a1ba2](https://github.com/CodinDotTop/react-native-webview/commit/f8a1ba2ebc56a52030443b491bde14b1c86ec189)), closes [/github.com/react-navigation/react-navigation/blob/main/packages/native/package.json#L56-L59](https://github.com//github.com/react-navigation/react-navigation/blob/main/packages/native/package.json/issues/L56-L59)
* **ios:** fix userAgent ios type comment ([#2888](https://github.com/CodinDotTop/react-native-webview/issues/2888)) ([4d0c0de](https://github.com/CodinDotTop/react-native-webview/commit/4d0c0dea008c53dc8f4cd8760e90c008b098234d))
* **iOS:** compilation error ([c036706](https://github.com/CodinDotTop/react-native-webview/commit/c03670685bea0116084168adc982e7a8394f75a2))
* **iOS/macOS:** re-added missing properties due to hooks refactor ([453d22d](https://github.com/CodinDotTop/react-native-webview/commit/453d22d1f16cfb1bd82d4963747fc7da4a8e1ba6))
* **jcenter:** remove jcenter ([#2178](https://github.com/CodinDotTop/react-native-webview/issues/2178)) ([283c18b](https://github.com/CodinDotTop/react-native-webview/commit/283c18b379c860454fc7745370fc100f62a13032))
* **js:** messagingEnabled prop ([#2666](https://github.com/CodinDotTop/react-native-webview/issues/2666)) ([f74ee7a](https://github.com/CodinDotTop/react-native-webview/commit/f74ee7a88adf6d645f2ef80da6657b68f5d6959d))
* **logs:** remove warning logs for common/handled error events. ([#2043](https://github.com/CodinDotTop/react-native-webview/issues/2043)) ([279d6ae](https://github.com/CodinDotTop/react-native-webview/commit/279d6ae98c449b3c2d9ab2cc567f99bcc6e298b6))
* **macos:** mediaCapturePermissionGrantType is iOS only ([#2313](https://github.com/CodinDotTop/react-native-webview/issues/2313)) ([69cafd1](https://github.com/CodinDotTop/react-native-webview/commit/69cafd1d20a538426ec387fb48e4709dfe4a6afd))
* **macOS:** failing build due to missing TARGET_OS_OSX ([3d7b9ca](https://github.com/CodinDotTop/react-native-webview/commit/3d7b9cac6e0cfad0fb40707c7120ef591580f5e0))
* **refactor:** Converting dispatchEvent static method to non static method ([#1939](https://github.com/CodinDotTop/react-native-webview/issues/1939)) ([344ccce](https://github.com/CodinDotTop/react-native-webview/commit/344ccce3eead04d7b974d3c0e82c281b5bf54a3a))
* **types:** Mark android-only methods as possibly undefined ([#2362](https://github.com/CodinDotTop/react-native-webview/issues/2362)) ([1b0fd64](https://github.com/CodinDotTop/react-native-webview/commit/1b0fd6481d88852e7d1d2744f3878c664f047010))
* **types:** Remove references to nonexistent extraNativeComponentConfig prop ([#1958](https://github.com/CodinDotTop/react-native-webview/issues/1958)) ([c1e91f7](https://github.com/CodinDotTop/react-native-webview/commit/c1e91f7d7368d5ae72de0fb171049a8e7f46b8aa))
* **windows:** add Visual Studio 2022 toolset (so it doesn't fall back to v140) ([#2297](https://github.com/CodinDotTop/react-native-webview/issues/2297)) ([d665456](https://github.com/CodinDotTop/react-native-webview/commit/d6654560983f3e80ffde69536d72afc6f6bda84c))
* **windows:** Add WinUI Version Opt In Functionality ([#2575](https://github.com/CodinDotTop/react-native-webview/issues/2575)) ([3727f81](https://github.com/CodinDotTop/react-native-webview/commit/3727f81caf337c88cb1fbd6a08397dd71670eed0))
* **windows:** don't build WebView2 unless on WinUI 3 ([#2517](https://github.com/CodinDotTop/react-native-webview/issues/2517)) ([0571062](https://github.com/CodinDotTop/react-native-webview/commit/05710628128815fc5fb2f1c48e467a78d1b5a1e7))
* **windows:** Refactor JS Code for Windows ([#2554](https://github.com/CodinDotTop/react-native-webview/issues/2554)) ([b7f5c6f](https://github.com/CodinDotTop/react-native-webview/commit/b7f5c6f4970e4da179da1942b527427bdabbda37))
* cannot find `react-native-test-app` when Metro starts ([#2413](https://github.com/CodinDotTop/react-native-webview/issues/2413)) ([c6471ed](https://github.com/CodinDotTop/react-native-webview/commit/c6471edd04b5ededfcdd7b2c84aaec132e682016))
* Don't crash if trying to download "invalid" URIs on Android ([#2432](https://github.com/CodinDotTop/react-native-webview/issues/2432)) ([c424a49](https://github.com/CodinDotTop/react-native-webview/commit/c424a496a009507432e6a3fff3eacb1099f634a3))
* **android:** add missing null check for fileTypes ([#1368](https://github.com/CodinDotTop/react-native-webview/issues/1368) by [@bengy](https://github.com/bengy)) ([4f0f0af](https://github.com/CodinDotTop/react-native-webview/commit/4f0f0afe70cf32739878932e236bfebbdee02a88))
* **android:** Add SSL error handling for Android WebView ([#1450](https://github.com/CodinDotTop/react-native-webview/issues/1450) by [@thephpjedi](https://github.com/thephpjedi)) ([1bd5961](https://github.com/CodinDotTop/react-native-webview/commit/1bd596125599af1cbba6964876e305bb42a4e4cf)), closes [#259](https://github.com/CodinDotTop/react-native-webview/issues/259)
* **android:** Added fallback poster image to prevent crashes ([#1036](https://github.com/CodinDotTop/react-native-webview/issues/1036)) ([d8acd90](https://github.com/CodinDotTop/react-native-webview/commit/d8acd9086ccc7c18bfd1a81e3dfa833137ea186a))
* **android:** Allow scrolling inside ScrollView ([#281](https://github.com/CodinDotTop/react-native-webview/issues/281)) ([a5cb7ba](https://github.com/CodinDotTop/react-native-webview/commit/a5cb7ba65c65a68ba714272df21fcef16728e56a))
* **android:** Allow user to rotate fullscreen video (Android X) ([#816](https://github.com/CodinDotTop/react-native-webview/issues/816)) ([1ea05d3](https://github.com/CodinDotTop/react-native-webview/commit/1ea05d3115b4404d9b7232e4e951021bcfe2bb8f))
* **android:** Annotate RNCWebViewModule with @ReactModule to comply with latest changes ([#459](https://github.com/CodinDotTop/react-native-webview/issues/459)) ([f6e208b](https://github.com/CodinDotTop/react-native-webview/commit/f6e208be61031f1d367b3b7b74c575287ab5d165))
* **android:** Blank screen due to missing super() call in RNCWebViewManager.java ([#241](https://github.com/CodinDotTop/react-native-webview/issues/241)) ([4e1d113](https://github.com/CodinDotTop/react-native-webview/commit/4e1d113c7024f4f61c64751d369e09565be4e3b1)), closes [#240](https://github.com/CodinDotTop/react-native-webview/issues/240) [#224](https://github.com/CodinDotTop/react-native-webview/issues/224)
* **android:** Broken build due to conditional import of kotlin ([#1412](https://github.com/CodinDotTop/react-native-webview/issues/1412)) ([7ab2afb](https://github.com/CodinDotTop/react-native-webview/commit/7ab2afbab7a64d58a97723734dc2dad4021f3b9b))
* **android:** changed initial value of nextLockIdentifier from 0 to 1 ([#1689](https://github.com/CodinDotTop/react-native-webview/issues/1689)) ([53c0382](https://github.com/CodinDotTop/react-native-webview/commit/53c0382cd088ca018ca8a550c5ad95556caf00b4))
* **android:** cleanup `build.gradle` & fix [#218](https://github.com/CodinDotTop/react-native-webview/issues/218) ([#238](https://github.com/CodinDotTop/react-native-webview/issues/238)) ([24ec4f7](https://github.com/CodinDotTop/react-native-webview/commit/24ec4f752cdfd29d49b0a13a0035aaea736eb641))
* **android:** crash problem while loading local html resource ([#1010](https://github.com/CodinDotTop/react-native-webview/issues/1010)) ([05c286f](https://github.com/CodinDotTop/react-native-webview/commit/05c286fc23373c99f2adba478c71a31dcb981898))
* **android:** Do not hold a strong reference to native module in the package ([#434](https://github.com/CodinDotTop/react-native-webview/issues/434)) ([566a629](https://github.com/CodinDotTop/react-native-webview/commit/566a6292b473127e1a8674c3140c9a585a4736bb))
* **android:** duplicate `setWebChromeClient()` overwrite ([#1417](https://github.com/CodinDotTop/react-native-webview/issues/1417)) ([2f8c4c5](https://github.com/CodinDotTop/react-native-webview/commit/2f8c4c506725b3f17d352317f6c7ce28a6917bb1))
* **android:** Filter extra onLoadProgress & add url event ([#643](https://github.com/CodinDotTop/react-native-webview/issues/643)) ([fc59cae](https://github.com/CodinDotTop/react-native-webview/commit/fc59cae4bfaf6ab9d9f887565c65e3657d798f44))
* **android:** Fix ClassCastException when doing native things([#987](https://github.com/CodinDotTop/react-native-webview/issues/987)) ([7e68da4](https://github.com/CodinDotTop/react-native-webview/commit/7e68da4ffe1e14a6791135b96f4c098856ad0d41))
* **android:** Fix Download on android P  ([#273](https://github.com/CodinDotTop/react-native-webview/issues/273)) ([15d904f](https://github.com/CodinDotTop/react-native-webview/commit/15d904f769935652f24e9ec3c6f0ebd0da17d6c0)), closes [#266](https://github.com/CodinDotTop/react-native-webview/issues/266)
* **android:** Fix full=screen video when in modals ([#1748](https://github.com/CodinDotTop/react-native-webview/issues/1748) by [@cristianoccazinsp](https://github.com/cristianoccazinsp)) ([4f469ee](https://github.com/CodinDotTop/react-native-webview/commit/4f469ee9aab9f6db5f9905c6276dc604d231cd5d))
* **android:** Fix several Android file upload issues ([#1302](https://github.com/CodinDotTop/react-native-webview/issues/1302) by [@hojason117](https://github.com/hojason117)) ([89886c8](https://github.com/CodinDotTop/react-native-webview/commit/89886c820d4812e8806ac5801660aff317b8f5b2))
* **android:** Fixes black screen on back button press ([#1298](https://github.com/CodinDotTop/react-native-webview/issues/1298) by [@michan85](https://github.com/michan85)) ([0317a4b](https://github.com/CodinDotTop/react-native-webview/commit/0317a4b4a5a216610257e5fe99794f2af5cac55c))
* **android:** Improve onLoadProgress consistency ([#1373](https://github.com/CodinDotTop/react-native-webview/issues/1373) by [@hojason117](https://github.com/hojason117)) ([b97d16c](https://github.com/CodinDotTop/react-native-webview/commit/b97d16c23d734fc0812e3acfb1da665625dd8ffe))
* **android:** Move noisy debug logging out of "quiet" log level. ([#844](https://github.com/CodinDotTop/react-native-webview/issues/844)) ([b2cd6b5](https://github.com/CodinDotTop/react-native-webview/commit/b2cd6b54fa903c14098bf7c50cdbd08b776ddb6e))
* **android:** onMessage on android to return baseEvent([#755](https://github.com/CodinDotTop/react-native-webview/issues/755)) ([282f81d](https://github.com/CodinDotTop/react-native-webview/commit/282f81dcddbcfc17ba9a197bb6390da71a323c28))
* **android:** possible NullPointerException ([#965](https://github.com/CodinDotTop/react-native-webview/issues/965)) ([fab77dc](https://github.com/CodinDotTop/react-native-webview/commit/fab77dc82f5076a9b398d17a7345731cca3480e1))
* **android:** redirect and renderLoading issues ([#548](https://github.com/CodinDotTop/react-native-webview/issues/548)) ([b296f24](https://github.com/CodinDotTop/react-native-webview/commit/b296f24dd29aadc0c89333c9b44cccaba203e2d4))
* **android:** renderError - the error status might be overwritte… ([#915](https://github.com/CodinDotTop/react-native-webview/issues/915)) ([01de9e5](https://github.com/CodinDotTop/react-native-webview/commit/01de9e5fa08f3f786abd46beba697f45a8054c01))
* **android:** replace deprecated `WebView.PictureListener`->`onContentSizeChange` impl ([#164](https://github.com/CodinDotTop/react-native-webview/issues/164)) ([9014c4c](https://github.com/CodinDotTop/react-native-webview/commit/9014c4cac0d1caccea94b02d5776bef476272456))
* **android:** Revert scroll update from [#281](https://github.com/CodinDotTop/react-native-webview/issues/281) ([#889](https://github.com/CodinDotTop/react-native-webview/issues/889)) ([8f2ddf4](https://github.com/CodinDotTop/react-native-webview/commit/8f2ddf45425d1e2a096e705b652d95099441ae6f)), closes [#878](https://github.com/CodinDotTop/react-native-webview/issues/878)
* **android:** unable to re-enable hardware acceleration after disabled it ([#553](https://github.com/CodinDotTop/react-native-webview/issues/553)) ([c8977ec](https://github.com/CodinDotTop/react-native-webview/commit/c8977ec7cefebb8e0d6ca6bb6216428353d272c5))
* **android:** Unset mWebChromeClient on WebViewManager rather than WebView ([#1720](https://github.com/CodinDotTop/react-native-webview/issues/1720)) ([c95c0ea](https://github.com/CodinDotTop/react-native-webview/commit/c95c0ea923a4c30225b04ae1c652e1ed6b6fad98))
* **android:** Update SSL error handling ([#1466](https://github.com/CodinDotTop/react-native-webview/issues/1466)) ([ef48d35](https://github.com/CodinDotTop/react-native-webview/commit/ef48d35e95ed780bb011e14a7ae18ef110345142))
* **android:** Updated permissions for Android Q and above ([#1384](https://github.com/CodinDotTop/react-native-webview/issues/1384) by @Karthz) ([03dbcb8](https://github.com/CodinDotTop/react-native-webview/commit/03dbcb870eba625d8231bb4808bd91bec70afd85))
* **android:** updating source.html prop doesn't refresh webview ([#485](https://github.com/CodinDotTop/react-native-webview/issues/485)) ([9aa14f1](https://github.com/CodinDotTop/react-native-webview/commit/9aa14f1a960bb12c725daa5504e99bd438f826ae))
* **android:** webview crash with incognito in Android Lollipop ([#799](https://github.com/CodinDotTop/react-native-webview/issues/799)) ([47e9a0b](https://github.com/CodinDotTop/react-native-webview/commit/47e9a0b97d914fc1489750bc0d7d3955d269012f))
* **Android:** Don't log the cookie when downloading file. ([#1224](https://github.com/CodinDotTop/react-native-webview/issues/1224)) ([2470245](https://github.com/CodinDotTop/react-native-webview/commit/24702450f3fc17bedd8b98ad3f49150f6dba1d94))
* **Android:** Don't show camera options for a file upload when they can not be used ([#1210](https://github.com/CodinDotTop/react-native-webview/issues/1210)) ([4093682](https://github.com/CodinDotTop/react-native-webview/commit/4093682e08a7a047de39046e8e48d9a78b2ad0f2))
* **Android:** Ensure each mounted WebView binds their personal onMessage handler ([#1301](https://github.com/CodinDotTop/react-native-webview/issues/1301)) ([04f9fb2](https://github.com/CodinDotTop/react-native-webview/commit/04f9fb23ba2f67a5e7dcf056e317bcf51c89585f))
* **Android:** geolocation access ([#562](https://github.com/CodinDotTop/react-native-webview/issues/562)) ([409b9ae](https://github.com/CodinDotTop/react-native-webview/commit/409b9ae6204c225da377197b29fc2f009cb21fde))
* **Android:** hardware acceleration issue ([#854](https://github.com/CodinDotTop/react-native-webview/issues/854)) ([9e25e42](https://github.com/CodinDotTop/react-native-webview/commit/9e25e42ceef65b47467860592ae38fb9f03c24df))
* **Android:** on scroll syntax error ([#577](https://github.com/CodinDotTop/react-native-webview/issues/577)) ([cbbff21](https://github.com/CodinDotTop/react-native-webview/commit/cbbff21ea8b946f021e4026ea8079beebc353d3a))
* **Android:** Redirected URLs now redirect correctly. ([#991](https://github.com/CodinDotTop/react-native-webview/issues/991)) ([acf1ad7](https://github.com/CodinDotTop/react-native-webview/commit/acf1ad7560aac450615703b3c8410919dbddecd1))
* **Android:** Resolve crypto error with uuid usage ([#1334](https://github.com/CodinDotTop/react-native-webview/issues/1334)) ([438e292](https://github.com/CodinDotTop/react-native-webview/commit/438e29298b39c54ff70629ca4274c979a67b2b3e))
* **Android:** Revert "Redirected URLs now redirect correctly. ([#991](https://github.com/CodinDotTop/react-native-webview/issues/991))" ([#1177](https://github.com/CodinDotTop/react-native-webview/issues/1177)) ([344aab5](https://github.com/CodinDotTop/react-native-webview/commit/344aab591a920159bbec30f97b42bbb12573824b))
* **Android:** Workaround for chromium bugs 1023678 and 1050635. ([#1221](https://github.com/CodinDotTop/react-native-webview/issues/1221)) ([5d88af4](https://github.com/CodinDotTop/react-native-webview/commit/5d88af44fabc1b061f5814659aacce2e993705f1))
* **Android <input />:** Support file extensions in file input accept attributes ([#357](https://github.com/CodinDotTop/react-native-webview/issues/357)) ([803a3b0](https://github.com/CodinDotTop/react-native-webview/commit/803a3b095b20d7f9af5d5b17eee46cdd1f4f8af8))
* **android sdk 28:** build issue ([#1469](https://github.com/CodinDotTop/react-native-webview/issues/1469)) ([5f823bb](https://github.com/CodinDotTop/react-native-webview/commit/5f823bb77b9fb532dbcbe02811eab2adee42e144))
* **android:scalesPageToFit:** scalesPageToFit does not work as intended , especially for large jpg and png images. ([#275](https://github.com/CodinDotTop/react-native-webview/issues/275)) ([a661df1](https://github.com/CodinDotTop/react-native-webview/commit/a661df1ffcfdd4b2eb1b82dd05005541897b784e)), closes [#113](https://github.com/CodinDotTop/react-native-webview/issues/113)
* **android/iOS:** Fixed react-native 0.58 warnings ([#311](https://github.com/CodinDotTop/react-native-webview/issues/311)) ([4a4ccd8](https://github.com/CodinDotTop/react-native-webview/commit/4a4ccd814143840edd11cd43bc1a629618019f24))
* **AndroidX support:** Fixed broken import + added instructions ([#583](https://github.com/CodinDotTop/react-native-webview/issues/583)) ([585ac7a](https://github.com/CodinDotTop/react-native-webview/commit/585ac7a24377cca4d3cbaf87df72bf80ea68faf7)), closes [#580](https://github.com/CodinDotTop/react-native-webview/issues/580) [#581](https://github.com/CodinDotTop/react-native-webview/issues/581) [#582](https://github.com/CodinDotTop/react-native-webview/issues/582)
* **build:** Android build errors when using Gradle 6.0 ([#1037](https://github.com/CodinDotTop/react-native-webview/issues/1037)) ([5b0c634](https://github.com/CodinDotTop/react-native-webview/commit/5b0c634f15dbf8eb8210d4393da9ca86df1de453))
* **deps:** Fix RNCWebViewUIManager interface typescript error (#… ([#928](https://github.com/CodinDotTop/react-native-webview/issues/928)) ([e529fa9](https://github.com/CodinDotTop/react-native-webview/commit/e529fa9006578dd6aeecdb744fc029490b75d48b)), closes [#901](https://github.com/CodinDotTop/react-native-webview/issues/901)
* **deps:** update dependencies to address security issues ([#837](https://github.com/CodinDotTop/react-native-webview/issues/837)) ([0411345](https://github.com/CodinDotTop/react-native-webview/commit/0411345f006fce6de6d6034768d05e6cf060aaed))
* **deps:** Update lock file ([#1257](https://github.com/CodinDotTop/react-native-webview/issues/1257)) ([9732d65](https://github.com/CodinDotTop/react-native-webview/commit/9732d65289d6760fbf765e771464782e33d83eb5))
* **deps:** Update package.json ([#1583](https://github.com/CodinDotTop/react-native-webview/issues/1583)) ([8dd9969](https://github.com/CodinDotTop/react-native-webview/commit/8dd996928898f34c30da4c67cd547e3f8fd7a4e7))
* **deps:** Update React Native Windows version to ^0.61.0-beta.58 ([#1256](https://github.com/CodinDotTop/react-native-webview/issues/1256)) ([91064ab](https://github.com/CodinDotTop/react-native-webview/commit/91064ab4a94b395f27ba670a14346206e05cff9c))
* **deps:** updated dependancies and types ([#847](https://github.com/CodinDotTop/react-native-webview/issues/847)) ([85b921c](https://github.com/CodinDotTop/react-native-webview/commit/85b921ce6426a6a97b235c1fcb600cd1ca9bd1fe))
* **gradle:** Add support library as a dependency ([#253](https://github.com/CodinDotTop/react-native-webview/issues/253)) ([5180033](https://github.com/CodinDotTop/react-native-webview/commit/518003392a500f2e706e3b503a6d63900cccbdba)), closes [#174](https://github.com/CodinDotTop/react-native-webview/issues/174) [#184](https://github.com/CodinDotTop/react-native-webview/issues/184) [#245](https://github.com/CodinDotTop/react-native-webview/issues/245)
* **gradle:** Load Android Gradle Plugin conditionally ([#1230](https://github.com/CodinDotTop/react-native-webview/issues/1230) by @SaeedZhiany) ([2639d52](https://github.com/CodinDotTop/react-native-webview/commit/2639d523e9336f5f640475bafd058f82f2bc0ab4))
* **Gradle:** Allow kotlinVersion override using ext with gradle.properties ([#267](https://github.com/CodinDotTop/react-native-webview/issues/267)) ([2846e27](https://github.com/CodinDotTop/react-native-webview/commit/2846e27fcf762d93efffd92ab38fdad766daeff8))
* **incognito:** Ensures that incognito doesn't clear cookies when not enabled ([#1447](https://github.com/CodinDotTop/react-native-webview/issues/1447) by [@jasonkellydk](https://github.com/jasonkellydk)) ([63c584c](https://github.com/CodinDotTop/react-native-webview/commit/63c584c64754eaf473774966b44aa9e93f7e5dad))
* **install guide:** Add pod install step to getting started guide ([#678](https://github.com/CodinDotTop/react-native-webview/issues/678)) ([d6044c2](https://github.com/CodinDotTop/react-native-webview/commit/d6044c2b5d703f071a42f27caafb5d33c1f1cb56))
* **ios:** Add missing nullability specifiers; fix if block warning ([#1898](https://github.com/CodinDotTop/react-native-webview/issues/1898)) ([85dfca8](https://github.com/CodinDotTop/react-native-webview/commit/85dfca894f3fdcd03e527324ac33611090ebb291))
* **ios:** error on iOS < 13([#1843](https://github.com/CodinDotTop/react-native-webview/issues/1843)) ([283fe12](https://github.com/CodinDotTop/react-native-webview/commit/283fe124b3f64c2bd2f51ab05faf757bd5420584))
* **ios:** Make allowFileAccessFromFileURLs work in iOS. ([#1061](https://github.com/CodinDotTop/react-native-webview/issues/1061)) ([88b6498](https://github.com/CodinDotTop/react-native-webview/commit/88b64981f4700de4f36785e656ce2c672159d31c))
* **ios:** Xcode 12 compatibility ([#1643](https://github.com/CodinDotTop/react-native-webview/issues/1643)) ([08b7099](https://github.com/CodinDotTop/react-native-webview/commit/08b709967f92b5eba28d63ec287e4754b1fbb632))
* **iOS:** Adds missing silent hardware declaration to header file ([#1319](https://github.com/CodinDotTop/react-native-webview/issues/1319)) ([2b4d752](https://github.com/CodinDotTop/react-native-webview/commit/2b4d752c32a01524328ff011488438a925b08c32)), closes [#1140](https://github.com/CodinDotTop/react-native-webview/issues/1140)
* **iOS:** Align look and feel of Window.prompt() to Mobile Safari ([#677](https://github.com/CodinDotTop/react-native-webview/issues/677)) ([231100d](https://github.com/CodinDotTop/react-native-webview/commit/231100dc3c69c5adfe87fc7b7d81dd5a266533d0))
* **iOS:** Call dispatchViewManagerCommand with correct number of arguments ([#886](https://github.com/CodinDotTop/react-native-webview/issues/886)) ([33f1ee3](https://github.com/CodinDotTop/react-native-webview/commit/33f1ee384fbe4435ff41af662bb6d4bd0693a043))
* **iOS:** changed the way the top view controller is obtained. ([#1592](https://github.com/CodinDotTop/react-native-webview/issues/1592)) ([2cb2113](https://github.com/CodinDotTop/react-native-webview/commit/2cb2113c2922292ca617d9de99c58738f5d47c6e))
* **iOS:** file picker crash ([#1567](https://github.com/CodinDotTop/react-native-webview/issues/1567)) ([05c1d8f](https://github.com/CodinDotTop/react-native-webview/commit/05c1d8f26499ee0a3bd7fc1f68f4f66054dd17fc))
* **iOS:** Fix changing notification bars [#735](https://github.com/CodinDotTop/react-native-webview/issues/735) ([#898](https://github.com/CodinDotTop/react-native-webview/issues/898)) ([05e2d27](https://github.com/CodinDotTop/react-native-webview/commit/05e2d27662d54f3481911e18946d6bff79030f88))
* **iOS:** hideKeyboardAccessoryView on iPads ([#661](https://github.com/CodinDotTop/react-native-webview/issues/661)) ([09372c9](https://github.com/CodinDotTop/react-native-webview/commit/09372c9d95b3cceb6990d3e1ab269bcacdad4a07))
* **iOS:** Ignore WebKitDomainError 101 ([#961](https://github.com/CodinDotTop/react-native-webview/issues/961)) ([adb5608](https://github.com/CodinDotTop/react-native-webview/commit/adb5608116c4931f53d5e5f62554c2471c1b0296))
* **iOS:** inconsistent backgroundColor ([#868](https://github.com/CodinDotTop/react-native-webview/issues/868)) ([d25b20a](https://github.com/CodinDotTop/react-native-webview/commit/d25b20ac031c79cdf0e558fc87d574ec75fe5637))
* **iOS:** injectedJavaScriptBeforeContentLoaded now runs when messaging is not enabled ([#1286](https://github.com/CodinDotTop/react-native-webview/issues/1286)) ([571fb8d](https://github.com/CodinDotTop/react-native-webview/commit/571fb8df793f4f2e3218d1a55dc2fa86dbe2a748))
* **iOS:** javaScriptEnabled property ([#826](https://github.com/CodinDotTop/react-native-webview/issues/826)) ([d87bb58](https://github.com/CodinDotTop/react-native-webview/commit/d87bb5820807f60b5f1afcc90b26dfdf42c6476e))
* **iOS:** Meta method 'UIScrollViewContentInsetAdjustmentBehavior:' conflict warning ([e6edc6d](https://github.com/CodinDotTop/react-native-webview/commit/e6edc6dc73c9ebcfce0a2283d839621cf361fa45)), closes [/github.com/facebook/react-native/blob/master/React/Views/ScrollView/RCTScrollViewManager.m#L40](https://github.com//github.com/facebook/react-native/blob/master/React/Views/ScrollView/RCTScrollViewManager.m/issues/L40)
* **iOS:** restore cookie handling for iOS <= 10 ([#1728](https://github.com/CodinDotTop/react-native-webview/issues/1728)) ([d338cae](https://github.com/CodinDotTop/react-native-webview/commit/d338cae57ad9c9bb659de8ca5af32ccad980ba05))
* **iOS:** Send cookies with resource requests ([#1803](https://github.com/CodinDotTop/react-native-webview/issues/1803)) ([1f089ba](https://github.com/CodinDotTop/react-native-webview/commit/1f089baa40a04f9e71ee598c6248da7fc47aef6d))
* **iOS:** signature of the swizzled `elementDidFocus` method on iOS 13 ([68f3c08](https://github.com/CodinDotTop/react-native-webview/commit/68f3c08b549b38219ba963dd2eee7e533c01fd2a))
* **iOS:** Trigger _onContentProcessDidTerminate when removing webview from superview ([#1378](https://github.com/CodinDotTop/react-native-webview/issues/1378) by [@pmusaraj](https://github.com/pmusaraj)) ([9240536](https://github.com/CodinDotTop/react-native-webview/commit/9240536afa4481fa2221cf857e3ced2a3611e902))
* **iOS:** UIWebView Removal ([#828](https://github.com/CodinDotTop/react-native-webview/issues/828)) ([8549be5](https://github.com/CodinDotTop/react-native-webview/commit/8549be5fd0e97c6d0a73a2e8ab154d668beecf44)), closes [#819](https://github.com/CodinDotTop/react-native-webview/issues/819)
* **iOS:** use RCTConvert to convert allowingReadAccessToURL. ([#845](https://github.com/CodinDotTop/react-native-webview/issues/845)) ([c366fdf](https://github.com/CodinDotTop/react-native-webview/commit/c366fdf2e76b263722b48733dfaea2dfeb276b5b))
* **iOS:** webview retain cycle ([#1916](https://github.com/CodinDotTop/react-native-webview/issues/1916)) ([30a53d9](https://github.com/CodinDotTop/react-native-webview/commit/30a53d9480c5ca1a120063622a4c19684fcf6817))
* **iOS:** WKWebView RetainCycle ([#1096](https://github.com/CodinDotTop/react-native-webview/issues/1096)) ([4f4644f](https://github.com/CodinDotTop/react-native-webview/commit/4f4644ffd836253f1f91cebf215f768932746dfb))
* **iOS:** Xcode issues and warnings (no functionality changes) ([#860](https://github.com/CodinDotTop/react-native-webview/issues/860)) ([6cfdd4b](https://github.com/CodinDotTop/react-native-webview/commit/6cfdd4b88c21f0136f2558ab475f7573ae5a2e1f))
* **iOS WKWebView:** contentInset not properly applied ([#603](https://github.com/CodinDotTop/react-native-webview/issues/603)) ([6e79f2a](https://github.com/CodinDotTop/react-native-webview/commit/6e79f2a26f37c90ae9a9cfeb72e4280eda2e2068))
* **iOS WKWebView:** fixed local html files loading on real devices ([#403](https://github.com/CodinDotTop/react-native-webview/issues/403)) ([9c9b7d7](https://github.com/CodinDotTop/react-native-webview/commit/9c9b7d721af30b08ad08769d20635e1ed147f54c))
* **iOS/android getViewManagerConfig:** Fix crash with react-native < 0.58 ([263fc5e](https://github.com/CodinDotTop/react-native-webview/commit/263fc5ec3c4216e94ebba076a2d8ea7559e96f6d))
* **lint android:** Add TargetAPI to onPermissionRequest ([#940](https://github.com/CodinDotTop/react-native-webview/issues/940)) ([0b783da](https://github.com/CodinDotTop/react-native-webview/commit/0b783da0a4a5971a5179529376b812fa6d7f1d35))
* **macOS:** Don't include iOS pull-to-refresh control ([#1636](https://github.com/CodinDotTop/react-native-webview/issues/1636)) ([dbf4659](https://github.com/CodinDotTop/react-native-webview/commit/dbf46593fa542101ffb0f67bf89a3c8ffd1755dd))
* **onShouldStartLoadWithRequest:** android event was missing fields ([#385](https://github.com/CodinDotTop/react-native-webview/issues/385)) ([a25997b](https://github.com/CodinDotTop/react-native-webview/commit/a25997bf65196d3dad857cb07ab8ae89f7a34407)), closes [/github.com/react-native-community/react-native-webview/blob/master/js/WebViewTypes.js#L34](https://github.com//github.com/react-native-community/react-native-webview/blob/master/js/WebViewTypes.js/issues/L34)
* **package.json:** Add license to podspec and update package.json version dynamically. ([#98](https://github.com/CodinDotTop/react-native-webview/issues/98)) ([59b513b](https://github.com/CodinDotTop/react-native-webview/commit/59b513b754df14ae79268d057f32f538806ee97e))
* **package.json:** Warning because peerDependencies >=0.57 <0.59 ([#279](https://github.com/CodinDotTop/react-native-webview/issues/279)) ([#327](https://github.com/CodinDotTop/react-native-webview/issues/327)) ([46286b2](https://github.com/CodinDotTop/react-native-webview/commit/46286b272352bdb2eed0ff14327470c3c393eb60))
* **performance:** Improved `onScroll` to work efficiently on Android ([#609](https://github.com/CodinDotTop/react-native-webview/issues/609)) ([d8743ee](https://github.com/CodinDotTop/react-native-webview/commit/d8743eeed2949f62f0a7bbdfb40b260ed1b7ab3d))
* **podspec:** Lowered deployment target for MacOS to 10.13 ([#1673](https://github.com/CodinDotTop/react-native-webview/issues/1673)) ([f204195](https://github.com/CodinDotTop/react-native-webview/commit/f2041955a2788dfc3a686cf3f2462d878e34ffb5))
* **PostMessage:** Renamed ReactNativeWebview to ReactNativeWebView ([d5fc028](https://github.com/CodinDotTop/react-native-webview/commit/d5fc02838375743d0c5997ff62eb10b557b704ff)), closes [#304](https://github.com/CodinDotTop/react-native-webview/issues/304)
* **semantic-release:** Added Missong devDeps for CI ([1394c7d](https://github.com/CodinDotTop/react-native-webview/commit/1394c7de06eb46a48dfe04176055742933990cf3))
* **semantic-release:** Auto increment package.json ([171f778](https://github.com/CodinDotTop/react-native-webview/commit/171f7781349cd2acfd10e6db9d0079069307b2b9))
* **semantic-release:** Use git plugin to auto commit ([c727dd9](https://github.com/CodinDotTop/react-native-webview/commit/c727dd9848942e9ad6e7eec08dc016eb8ca9650a))
* **styles:** removed unneeded display: 'none' ([91eb7ce](https://github.com/CodinDotTop/react-native-webview/commit/91eb7ce3d18c04feea3945f07f36cf331392c38d)), closes [#473](https://github.com/CodinDotTop/react-native-webview/issues/473)
* **styles:** Removes hard-coded container white backgroundColor ([#478](https://github.com/CodinDotTop/react-native-webview/issues/478)) ([5ec74ea](https://github.com/CodinDotTop/react-native-webview/commit/5ec74ea9bb93f04a90b0e8845d756496fceb6e9e)), closes [#475](https://github.com/CodinDotTop/react-native-webview/issues/475) [#472](https://github.com/CodinDotTop/react-native-webview/issues/472)
* **ts:** Convert ContentInsetAdjustmentBehavior from an enum back to a string union type ([#1536](https://github.com/CodinDotTop/react-native-webview/issues/1536)) ([a48c981](https://github.com/CodinDotTop/react-native-webview/commit/a48c9819c527a467629c4334e6cadbb7bbc80c9b))
* **ts:** onScroll event type ([#1631](https://github.com/CodinDotTop/react-native-webview/issues/1631)) ([84b7177](https://github.com/CodinDotTop/react-native-webview/commit/84b7177d2181ce6527de6a7432f91d52f8cb4be3))
* **types:** Add missing applicationNameForUserAgent type ([#589](https://github.com/CodinDotTop/react-native-webview/issues/589)) ([b06be7e](https://github.com/CodinDotTop/react-native-webview/commit/b06be7e136ceb21217fffcbd728dec4c3776ba31))
* **types:** Add missing applicationNameForUserAgent type in WebViewSharedProps ([#1542](https://github.com/CodinDotTop/react-native-webview/issues/1542)) ([91295e5](https://github.com/CodinDotTop/react-native-webview/commit/91295e5258ee6f431c1112dc5525779c5739e773))
* **types:** Add missing type definitions of the methods ([#442](https://github.com/CodinDotTop/react-native-webview/issues/442)) ([54268ff](https://github.com/CodinDotTop/react-native-webview/commit/54268ff469ce21d3bc5dc5f35d6a282ab1ad75a7))
* **types:** Add new cacheEnabled prop to typescript prop type declarations ([#335](https://github.com/CodinDotTop/react-native-webview/issues/335)) ([ff62c95](https://github.com/CodinDotTop/react-native-webview/commit/ff62c956e34437334015fb0f0ac0c68a1c010821))
* **types:** add showScrollIndicator prop to type file ([#388](https://github.com/CodinDotTop/react-native-webview/issues/388)) ([a364d3e](https://github.com/CodinDotTop/react-native-webview/commit/a364d3ed67c87da76ab5fd6c16b831c43f5bdb0c))
* **types:** android/allowsFullscreenVideo ([#590](https://github.com/CodinDotTop/react-native-webview/issues/590)) ([f8a560b](https://github.com/CodinDotTop/react-native-webview/commit/f8a560ba512d9077787f2281cbcd8c7676892261))
* **types:** Export WebViewMessageEvent, WebViewNavigation for external use ([#855](https://github.com/CodinDotTop/react-native-webview/issues/855)) ([be027da](https://github.com/CodinDotTop/react-native-webview/commit/be027dad1fdf99d6c15573b78a2069d632f2a58b))
* **types:** export WebViewProps for external use ([#457](https://github.com/CodinDotTop/react-native-webview/issues/457)) ([ef709aa](https://github.com/CodinDotTop/react-native-webview/commit/ef709aa82bf5a3a801873d7abdc9347166a278c5))
* **types:** Fixing typing. ([#167](https://github.com/CodinDotTop/react-native-webview/issues/167)) ([65bd972](https://github.com/CodinDotTop/react-native-webview/commit/65bd97219a358eaf2df279f5112aeeaa2ff1395e))
* **types:** Make onContentProcessDidTerminate optional ([#890](https://github.com/CodinDotTop/react-native-webview/issues/890)) ([b010e0e](https://github.com/CodinDotTop/react-native-webview/commit/b010e0e04f04dc067016078f3a9db2bfc8f77a6b))
* **types:** make source html base URL optional ([a1e2368](https://github.com/CodinDotTop/react-native-webview/commit/a1e23689d22cc0ae332fb501c21e5752ed32645b))
* **types:** Remove readonly definition in WebViewTypes.ts ([#1272](https://github.com/CodinDotTop/react-native-webview/issues/1272)) ([3c06d78](https://github.com/CodinDotTop/react-native-webview/commit/3c06d782397ad422b05f504ff61a7d1dbde83016))
* **types:** Update Typescript definition file ([#1597](https://github.com/CodinDotTop/react-native-webview/issues/1597)) ([9dcd108](https://github.com/CodinDotTop/react-native-webview/commit/9dcd108b1fc58964a6dd4a49b99d7656386cdc45))
* **types:** wrong parameter type in onLoadProgress ([#538](https://github.com/CodinDotTop/react-native-webview/issues/538)) ([5892601](https://github.com/CodinDotTop/react-native-webview/commit/5892601c290a83b3c23533c2c7f7b0872986dce9))
* **typings:** incorrect package.json + fix d.ts([#453](https://github.com/CodinDotTop/react-native-webview/issues/453)) ([e2adacc](https://github.com/CodinDotTop/react-native-webview/commit/e2adacc97777a02a75551a142c96931104b14851))
* **UIWebview:** Deprecate UIWebView and add link to issue ([#313](https://github.com/CodinDotTop/react-native-webview/issues/313)) ([4c80240](https://github.com/CodinDotTop/react-native-webview/commit/4c8024047b3a3641d38cf8f378cdbb149c1f5c15))
* **vulnerability:** merge issue ([#399](https://github.com/CodinDotTop/react-native-webview/issues/399)) ([74a2086](https://github.com/CodinDotTop/react-native-webview/commit/74a20865b0443c32f1f5963d7e8c1a924749801c))
* **webviewShared.js:** Support all valid URI schemes and add testing ([#293](https://github.com/CodinDotTop/react-native-webview/issues/293)) ([fb78d13](https://github.com/CodinDotTop/react-native-webview/commit/fb78d131200ef2e20565d010f712cd366e0d960c)), closes [/tools.ietf.org/html/rfc3986#section-3](https://github.com//tools.ietf.org/html/rfc3986/issues/section-3)
* **whitelisted origins:** Prevent handling of un-whitelisted URLs ([0442126](https://github.com/CodinDotTop/react-native-webview/commit/0442126595a27b60c86c97a9ec4a71823d6c3f70))
* **windows:** Add postMessage for Windows WebView ([#1263](https://github.com/CodinDotTop/react-native-webview/issues/1263) by [@kaiguo](https://github.com/kaiguo)) ([e402e73](https://github.com/CodinDotTop/react-native-webview/commit/e402e739eaf2b67987a5ada4af4050f71b93c9fe))
* **windows:** Check UAP contract version before calling FrameworkElement.IsLoaded ([#1858](https://github.com/CodinDotTop/react-native-webview/issues/1858)) ([ac8eb97](https://github.com/CodinDotTop/react-native-webview/commit/ac8eb97910212e64930b5f3a72142f062ef71329))
* **windows:** Fix ARM/ARM64 support ([#2044](https://github.com/CodinDotTop/react-native-webview/issues/2044)) ([e3e6e68](https://github.com/CodinDotTop/react-native-webview/commit/e3e6e6841adb5316445fb9ce524d85a357da8c56))
* **windows:** Fix windows local asset path ([#1335](https://github.com/CodinDotTop/react-native-webview/issues/1335) by [@kaiguo](https://github.com/kaiguo)) ([20a3f90](https://github.com/CodinDotTop/react-native-webview/commit/20a3f90c0f0b24c59ab6b31dc981e9e4f1c0473b))
* **windows:** Fixes ScriptNotify and InvokeScript ([#1354](https://github.com/CodinDotTop/react-native-webview/issues/1354) by [@benhamlin](https://github.com/benhamlin)) ([81e0360](https://github.com/CodinDotTop/react-native-webview/commit/81e0360edea465db9cba97240f37e8e29e0d6f1b))
* **windows:** Navigation to ms-appdata and ms-appx-web local file request ([#2098](https://github.com/CodinDotTop/react-native-webview/issues/2098)) ([4f89408](https://github.com/CodinDotTop/react-native-webview/commit/4f894083cabfb9f55f1b9bc8507c98a6e361ffa9))
* **windows:** react-native.config for non windows platforms ([#2046](https://github.com/CodinDotTop/react-native-webview/issues/2046)) ([2eabfa3](https://github.com/CodinDotTop/react-native-webview/commit/2eabfa3d4a5471b9d3890c4cb3035b0c97c4a8fa))
* **windows:** Resolve Deploy Issue ([#1850](https://github.com/CodinDotTop/react-native-webview/issues/1850)) ([ad702f5](https://github.com/CodinDotTop/react-native-webview/commit/ad702f57f16eb0630af6e4fa34416d06b27a8552))
* **windows:** Resolve Missing Deploy Target ([#1716](https://github.com/CodinDotTop/react-native-webview/issues/1716) by [@chiaramooney](https://github.com/chiaramooney)) ([8bd0b41](https://github.com/CodinDotTop/react-native-webview/commit/8bd0b41381a981845222d3eff059b62c6a1449d4))
* **windows:** Simplify project structure, fix arm64 ([#2211](https://github.com/CodinDotTop/react-native-webview/issues/2211)) ([aafa899](https://github.com/CodinDotTop/react-native-webview/commit/aafa8991f5e94e7fbab51b3a66ef2ffbabc05721))
* **windows:** update Getting Started information for Windows ([92ba4fa](https://github.com/CodinDotTop/react-native-webview/commit/92ba4faad259ae5105cecd86cd2d10f0f7d7395f))
* **Windows:** Move rnpm-plugin-windows to devDependencies. ([#1266](https://github.com/CodinDotTop/react-native-webview/issues/1266)) ([d16746c](https://github.com/CodinDotTop/react-native-webview/commit/d16746c8ea8dbaaf45f6a7f823cdd5a1ba12b241))
* **WKWebview:** Fixed for supporting mediaPlaybackRequiresUserAction option under iOS 10. ([#129](https://github.com/CodinDotTop/react-native-webview/issues/129)) ([c0c0116](https://github.com/CodinDotTop/react-native-webview/commit/c0c0116c80d72f4c52751ace16deb067e6793eba))
* **WKWebview:** Fixed non-working iOS alert. ([#188](https://github.com/CodinDotTop/react-native-webview/issues/188)) ([41d9bdc](https://github.com/CodinDotTop/react-native-webview/commit/41d9bdcce482d9143f08bee093e4ca901051dff2))
* **WKWebview:** Reverts [#134](https://github.com/CodinDotTop/react-native-webview/issues/134), fixes issue where keyboard dismiss would scroll to top ([#210](https://github.com/CodinDotTop/react-native-webview/issues/210)) ([9f37dde](https://github.com/CodinDotTop/react-native-webview/commit/9f37ddea61852f4efc1b11e325fb29eb473110fd))
* **WKWebview:** Surface evaluateJavaScript errors ([#179](https://github.com/CodinDotTop/react-native-webview/issues/179)) ([ec469cf](https://github.com/CodinDotTop/react-native-webview/commit/ec469cf00d72920488d27bdf17af2c6f1fdff56b))
* **WKWebview:** Update webview property when allowsBackForwardNavigationGestures prop changes ([#173](https://github.com/CodinDotTop/react-native-webview/issues/173)) ([4bc1dc2](https://github.com/CodinDotTop/react-native-webview/commit/4bc1dc20fd5f69d79bfffb58ad54f06bce65e75f))
* **WKWebView:** Add "Frame load interrupted" error handling for OAuth ([#147](https://github.com/CodinDotTop/react-native-webview/issues/147)) ([6f61224](https://github.com/CodinDotTop/react-native-webview/commit/6f612242fea912fca33a4926463f3cbe3548164d))
* **WKWebView:** Fix the message handle bug. ([#143](https://github.com/CodinDotTop/react-native-webview/issues/143)) ([2b9292e](https://github.com/CodinDotTop/react-native-webview/commit/2b9292ed1c4c339ac633cec5fbacd24c6bef4e18))
* **WKWebView:** iOS crash when WebView's title is nil ([#521](https://github.com/CodinDotTop/react-native-webview/issues/521)) ([7a91221](https://github.com/CodinDotTop/react-native-webview/commit/7a91221926afbc57ff35c5c9fb64f2f2e4b97534))
* **WKWebView:** resolved crash with WebKit on iOS 9.x. ([#342](https://github.com/CodinDotTop/react-native-webview/issues/342)) ([f27f13e](https://github.com/CodinDotTop/react-native-webview/commit/f27f13e93164c6668360bf18f02a86f388c6063c)), closes [#150](https://github.com/CodinDotTop/react-native-webview/issues/150) [#213](https://github.com/CodinDotTop/react-native-webview/issues/213) [jerolimov/react-native-webview#fix-ios9](https://github.com/jerolimov/react-native-webview/issues/fix-ios9) [jerolimov/react-native-webview#fix-ios9](https://github.com/jerolimov/react-native-webview/issues/fix-ios9)
* **WKWebView:** StatusBar is gone after fullscreen (iOS 12) ([#544](https://github.com/CodinDotTop/react-native-webview/issues/544)) ([c2914a8](https://github.com/CodinDotTop/react-native-webview/commit/c2914a8d7345204997678956ecf076dfbf776cc5)), closes [#62](https://github.com/CodinDotTop/react-native-webview/issues/62)
* **WKWebview Scroll:** Don't allow the scrollView to scroll when `scrollEnabled={false}`. ([#158](https://github.com/CodinDotTop/react-native-webview/issues/158)) ([0e6e92a](https://github.com/CodinDotTop/react-native-webview/commit/0e6e92a7f19c1e968cf852f5e659115895e8f49f))
* **WKWebView Scrolling:** fixed broken scroll ([#372](https://github.com/CodinDotTop/react-native-webview/issues/372)) ([2cef5cb](https://github.com/CodinDotTop/react-native-webview/commit/2cef5cbb3ff5967a8f207b0c54340003ab1abc80)), closes [#371](https://github.com/CodinDotTop/react-native-webview/issues/371)
* **WKWebView.m:** Reapplied [#134](https://github.com/CodinDotTop/react-native-webview/issues/134) with additional checks to tackle unintentional scrolls ([#296](https://github.com/CodinDotTop/react-native-webview/issues/296)) ([3f58b0e](https://github.com/CodinDotTop/react-native-webview/commit/3f58b0e5974b7a65474c7727845ef58037aaf5a9))

### Features

* **android:** Android injectJavaScriptObject ([#2960](https://github.com/CodinDotTop/react-native-webview/issues/2960)) ([447f68e](https://github.com/CodinDotTop/react-native-webview/commit/447f68e700385247ee67640c8fa609ba458bd94c))
* Add clearCache method on iOS ([#3119](https://github.com/CodinDotTop/react-native-webview/issues/3119)) ([0868f91](https://github.com/CodinDotTop/react-native-webview/commit/0868f91b3b9294e4779a2456a1755ed563e37635))
* **android:** Add androidLayerType as prop ([#1588](https://github.com/CodinDotTop/react-native-webview/issues/1588)) ([9ffca8f](https://github.com/CodinDotTop/react-native-webview/commit/9ffca8f9dbbc461d35fd4517c7924617cc4eec11))
* **android:** add minimum font size ([#2279](https://github.com/CodinDotTop/react-native-webview/issues/2279)) ([a12e231](https://github.com/CodinDotTop/react-native-webview/commit/a12e231121e4dad2a5c8c8f0fcbca91c7a76a52f))
* **android:** add props to control pinch to zoom and internal zoom controls ([#2113](https://github.com/CodinDotTop/react-native-webview/issues/2113)) ([b92b986](https://github.com/CodinDotTop/react-native-webview/commit/b92b98637c673fd04a4d40c5ae15aece7578b89f))
* **android:** Add support for injectedJavaScriptBeforeContentLoaded on Android ([#1099](https://github.com/CodinDotTop/react-native-webview/issues/1099) by @SRandazzo and @ [@shirakaba](https://github.com/shirakaba)) ([ac4e05e](https://github.com/CodinDotTop/react-native-webview/commit/ac4e05e0f2a206d662f136244efd03fa05c3425c))
* **android:** Enhanced camera/audio and geolocation permissions ([#1239](https://github.com/CodinDotTop/react-native-webview/issues/1239)) ([9f6037e](https://github.com/CodinDotTop/react-native-webview/commit/9f6037e4b23535633e84bfc8b31434f90870727d))
* **android:** force dark mode ([#2063](https://github.com/CodinDotTop/react-native-webview/issues/2063)) ([19980d8](https://github.com/CodinDotTop/react-native-webview/commit/19980d888d66554875f3ac64b3e8a35bd7ad998b))
* **iOS:** Suppress menu items ([#3082](https://github.com/CodinDotTop/react-native-webview/issues/3082)) ([5cd324c](https://github.com/CodinDotTop/react-native-webview/commit/5cd324c13032696a7184918797842418b4188766))
* Add `onOpenWindow` event ([#2640](https://github.com/CodinDotTop/react-native-webview/issues/2640)) ([933fe19](https://github.com/CodinDotTop/react-native-webview/commit/933fe19a3477d3a01a19c64da2aa051c0d6b0668))
* **android:** Add support for the `capture` attribute ([#2954](https://github.com/CodinDotTop/react-native-webview/issues/2954)) ([966221e](https://github.com/CodinDotTop/react-native-webview/commit/966221e354d27a4c61117afda332566bac1aba62))
* **android:** Introduce setSupportMultipleWindows to mitigate CVE-2020-6506 ([#1747](https://github.com/CodinDotTop/react-native-webview/issues/1747) by [@mrcoinbase](https://github.com/mrcoinbase) and [@kelset](https://github.com/kelset) -- THANK YOU!) ([194c6a2](https://github.com/CodinDotTop/react-native-webview/commit/194c6a2335b12cc05283413c44d0948eb5156e02))
* **android:** remove unnecessary buildToolsVersion ([#2023](https://github.com/CodinDotTop/react-native-webview/issues/2023)) ([998b211](https://github.com/CodinDotTop/react-native-webview/commit/998b211b94214952b0d4ffe19429fad555e54a68))
* **Android:** Implement direct communication between Android code and JS ([#1203](https://github.com/CodinDotTop/react-native-webview/issues/1203)) ([c88e380](https://github.com/CodinDotTop/react-native-webview/commit/c88e3807625d70b3055e413e8d302ff0c15751ec))
* **ios:** Generate history API events on iOS ([#1082](https://github.com/CodinDotTop/react-native-webview/issues/1082)) ([3615296](https://github.com/CodinDotTop/react-native-webview/commit/361529630fbe7e0f743eaa71d72ba3f542553ec2))
* **iOS:** fraudulent website warning setting (previously [#2801](https://github.com/CodinDotTop/react-native-webview/issues/2801)) ([#2994](https://github.com/CodinDotTop/react-native-webview/issues/2994)) ([6d185e6](https://github.com/CodinDotTop/react-native-webview/commit/6d185e689320a9cd42c9f3cf5a51d4f5184e44fc))
* Allow webview to load in background tab ([#2930](https://github.com/CodinDotTop/react-native-webview/issues/2930)) ([40c9807](https://github.com/CodinDotTop/react-native-webview/commit/40c98078939d486d95c27ce83bb2f378e1d13dd6))
* custom action menu on android + improved iOS ([#2993](https://github.com/CodinDotTop/react-native-webview/issues/2993)) ([f2aef66](https://github.com/CodinDotTop/react-native-webview/commit/f2aef667b28ac36ac6b75ec81fc95055a1c5743a))
* debugging enabled prop ([#2937](https://github.com/CodinDotTop/react-native-webview/issues/2937)) ([f9a5277](https://github.com/CodinDotTop/react-native-webview/commit/f9a527753fed972650de5a0e4a5000b278926b9b))
* **android:** Adding downloadMessage as a prop for localization ([#2489](https://github.com/CodinDotTop/react-native-webview/issues/2489)) ([c3f73fe](https://github.com/CodinDotTop/react-native-webview/commit/c3f73fe2accbeeebe64ae7d0c89f9929f7031497))
* **android:** bump up kotlinVersion to 1.6.0 ([#2592](https://github.com/CodinDotTop/react-native-webview/issues/2592)) ([b850d1d](https://github.com/CodinDotTop/react-native-webview/commit/b850d1d7b1f58830763c89146f13b9c777592be9)), closes [#2578](https://github.com/CodinDotTop/react-native-webview/issues/2578)
* **android:** WebView crash handling ([#1480](https://github.com/CodinDotTop/react-native-webview/issues/1480)) ([8a8b7ce](https://github.com/CodinDotTop/react-native-webview/commit/8a8b7ceb981bc524278930ccf3f10fe49e5ec01d))
* **Android:** Handle RESOURCE_PROTECTED_MEDIA_ID permission ([#2732](https://github.com/CodinDotTop/react-native-webview/issues/2732)) ([2711f3a](https://github.com/CodinDotTop/react-native-webview/commit/2711f3a5dc04ba0cdece2fdc3d3473469ad79d55))
* **compatibility:** Support React Native 0.62 ([#1364](https://github.com/CodinDotTop/react-native-webview/issues/1364) by [@jussikinnula](https://github.com/jussikinnula) and [@kaiguo](https://github.com/kaiguo)) ([228f10d](https://github.com/CodinDotTop/react-native-webview/commit/228f10d9176098dd75a5e44739c55b3200727ec4))
* **events:** Add isTopFrame to shouldStartLoadForRequest ([#1537](https://github.com/CodinDotTop/react-native-webview/issues/1537)) ([6a9116f](https://github.com/CodinDotTop/react-native-webview/commit/6a9116f2d19a8cfd76ee691c2d793b34aee963e7))
* **ios:** Add iOS contentMode property ([#1538](https://github.com/CodinDotTop/react-native-webview/issues/1538) by @TheAlmightyBob) ([8b69452](https://github.com/CodinDotTop/react-native-webview/commit/8b694526434133cf17eec6806020b1741efdcdf6))
* **ios:** Add support for `limitsNavigationsToAppBoundDomains` ([#1662](https://github.com/CodinDotTop/react-native-webview/issues/1662)) ([7decc5c](https://github.com/CodinDotTop/react-native-webview/commit/7decc5cff1de221ad729ab16f7b18901dc2f889a))
* **ios:** Apple Pay support ([#1946](https://github.com/CodinDotTop/react-native-webview/issues/1946)) ([30685ed](https://github.com/CodinDotTop/react-native-webview/commit/30685edda045f7ba5d1400b415278e1109436dcd))
* **ios:** Cookie sync improvements ([#2535](https://github.com/CodinDotTop/react-native-webview/issues/2535)) ([4ac0d74](https://github.com/CodinDotTop/react-native-webview/commit/4ac0d746c9420191e4eb7387dadd35a674950f34))
* **macos:** Support File Input On Macos ([#2733](https://github.com/CodinDotTop/react-native-webview/issues/2733)) ([9b7ce57](https://github.com/CodinDotTop/react-native-webview/commit/9b7ce574fcc53c635b532bd8c02e8d8e9cf80a08))
* **windows:** Support headers and cookies in source prop ([#2897](https://github.com/CodinDotTop/react-native-webview/issues/2897)) ([1851ead](https://github.com/CodinDotTop/react-native-webview/commit/1851ead46582aece53884ab12694234e50457b10))
* Fabric support ([#2686](https://github.com/CodinDotTop/react-native-webview/issues/2686)) ([5558e28](https://github.com/CodinDotTop/react-native-webview/commit/5558e28feab2e8bd881450f155e642cf1e66caad))
* improve dummy WebView  ([#2509](https://github.com/CodinDotTop/react-native-webview/issues/2509)) ([2e79a03](https://github.com/CodinDotTop/react-native-webview/commit/2e79a031c81a5d29784a3f57f9a9b44f91f92279))
* make pushState changes trackable on android ([#2929](https://github.com/CodinDotTop/react-native-webview/issues/2929)) ([39ce007](https://github.com/CodinDotTop/react-native-webview/commit/39ce0077f06f1b7dbf91be1302792909ae945029))
* **apple:** userAgent can be changed at runtime ([#2116](https://github.com/CodinDotTop/react-native-webview/issues/2116)) ([2fc86f9](https://github.com/CodinDotTop/react-native-webview/commit/2fc86f9d39e44999499d1de97a48f981fc352e93))
* **auth:** Basic Authentication Support ([#1467](https://github.com/CodinDotTop/react-native-webview/issues/1467)) ([0c42a98](https://github.com/CodinDotTop/react-native-webview/commit/0c42a9812e1bf9515db9ccb2f92fce526536d44e))
* **deps:** Remove upper bound on React Native peerdep ([#2054](https://github.com/CodinDotTop/react-native-webview/issues/2054)) ([6cd000e](https://github.com/CodinDotTop/react-native-webview/commit/6cd000ec9d7135121088d2292c74f7e8994b4d73)), closes [#1935](https://github.com/CodinDotTop/react-native-webview/issues/1935)
* **ios:** Add textInteractionEnabled prop ([#2252](https://github.com/CodinDotTop/react-native-webview/issues/2252)) ([4e0cf9c](https://github.com/CodinDotTop/react-native-webview/commit/4e0cf9ca2538e8cba47f16cff8750c85303f32f0))
* **ios:** adds allowsAirPlayForMediaPlayback prop ([#2410](https://github.com/CodinDotTop/react-native-webview/issues/2410) by [@matinzd](https://github.com/matinzd)) ([eb4e923](https://github.com/CodinDotTop/react-native-webview/commit/eb4e923fb012f1dcb5c5389fb1901ee84e32fa8c))
* **ios:** Enhanced permissions handling to prevent repetitive prompts. ([#2257](https://github.com/CodinDotTop/react-native-webview/issues/2257)) ([cd42aa7](https://github.com/CodinDotTop/react-native-webview/commit/cd42aa7f1110edb13d07978badd6d52e386d145c))
* **iOS:** Add Hardware Silence ([#1218](https://github.com/CodinDotTop/react-native-webview/issues/1218)) ([d4ab332](https://github.com/CodinDotTop/react-native-webview/commit/d4ab332891af2242e663ac2e25f4aa3317945399)), closes [#1140](https://github.com/CodinDotTop/react-native-webview/issues/1140)
* **iOS:** Add onFileDownload callback ([#1214](https://github.com/CodinDotTop/react-native-webview/issues/1214)) ([a6010d9](https://github.com/CodinDotTop/react-native-webview/commit/a6010d93e070d91e7f656cf3edf604515bde586f))
* **iOS:** Add prop autoManageStatusBarEnabled ([#914](https://github.com/CodinDotTop/react-native-webview/issues/914)) ([22a60fd](https://github.com/CodinDotTop/react-native-webview/commit/22a60fd23a9ce396b11f498a6b338bf16510981b))
* **iOS:** Add the pull to refresh ([#1265](https://github.com/CodinDotTop/react-native-webview/issues/1265)) ([a02d88f](https://github.com/CodinDotTop/react-native-webview/commit/a02d88f54f789608c94ba8e53dc2f9ff6c3292f6))
* **iOS:** WKUserScripts (e.g. injectedJavaScript) can now update upon props change; and can be configured to inject into all frames. ([#1119](https://github.com/CodinDotTop/react-native-webview/issues/1119)) ([9cb2f6e](https://github.com/CodinDotTop/react-native-webview/commit/9cb2f6e2f30baa41db47446e03ab9a059852e847)), closes [/github.com/react-native-community/react-native-webview/pull/1119#issuecomment-574919464](https://github.com//github.com/react-native-community/react-native-webview/pull/1119/issues/issuecomment-574919464)
* **iOS & MacOS:** allowUniversalAccessFromFileURLs property([#1730](https://github.com/CodinDotTop/react-native-webview/issues/1730)) ([8d098ef](https://github.com/CodinDotTop/react-native-webview/commit/8d098efce72e2add9ae02aabaa9c6472c1008565))
* **iOS 13+:** automaticallyAdjustsScrollIndicatorInsets prop ([#1077](https://github.com/CodinDotTop/react-native-webview/issues/1077)) ([d46a6d3](https://github.com/CodinDotTop/react-native-webview/commit/d46a6d3c695c2575ec22028c67c9060aa062ff7d))
* **macOS:** macOS Support ([#1164](https://github.com/CodinDotTop/react-native-webview/issues/1164)) ([1e57231](https://github.com/CodinDotTop/react-native-webview/commit/1e572318ec6c9cd1f88be86950564a2d3cbfe1c2))
* **macOS:** Make podspec compatible with macOS ([#1328](https://github.com/CodinDotTop/react-native-webview/issues/1328)) ([2d9b080](https://github.com/CodinDotTop/react-native-webview/commit/2d9b0803e03660e8f19b3e5d531ccb55675f57ed))
* **onError:** Add support for preventDefault when using onError method ([#1706](https://github.com/CodinDotTop/react-native-webview/issues/1706)) ([404e3e6](https://github.com/CodinDotTop/react-native-webview/commit/404e3e69e23d8c73bc4deb688c77b9a1a0bb55f8))
* **refactor:** remove findnodehandle, use function components & codegenNativeCommands ([#2508](https://github.com/CodinDotTop/react-native-webview/issues/2508)) ([6b8e4f3](https://github.com/CodinDotTop/react-native-webview/commit/6b8e4f3f5f3cc006ebca8cb3c7ab692805824685)), closes [#2518](https://github.com/CodinDotTop/react-native-webview/issues/2518) [#2532](https://github.com/CodinDotTop/react-native-webview/issues/2532) [#2517](https://github.com/CodinDotTop/react-native-webview/issues/2517)
* **webview:** Allow javascript to open windows automatically ([#1409](https://github.com/CodinDotTop/react-native-webview/issues/1409) by [@trcoffman](https://github.com/trcoffman)) ([91df544](https://github.com/CodinDotTop/react-native-webview/commit/91df544faef8b1cae7ce29dc8b7b615401f3aced))
* **windows:** Add POST requests, fixes Windows CI issues, and other QOL ([#1926](https://github.com/CodinDotTop/react-native-webview/issues/1926)) ([d352d14](https://github.com/CodinDotTop/react-native-webview/commit/d352d147bdffbc4b55196541749363de32a0cc2c))
* **windows:** Add WebView2 UWP Desktop support ([#2419](https://github.com/CodinDotTop/react-native-webview/issues/2419)) ([5fb7b0c](https://github.com/CodinDotTop/react-native-webview/commit/5fb7b0cff005f2262c24ec6b6b7ccf2189b556e2))
* add prop to allow nested scroll on android ([#2056](https://github.com/CodinDotTop/react-native-webview/issues/2056)) ([6bac272](https://github.com/CodinDotTop/react-native-webview/commit/6bac272a5f9cd2eda122b8d6be2cf80ffacee4b6))
* **android:** add clearHistory, clearCache and clearFormData ([#450](https://github.com/CodinDotTop/react-native-webview/issues/450)) ([4a4f4a2](https://github.com/CodinDotTop/react-native-webview/commit/4a4f4a2c454d818f72fb809a6ea5f33711b37bf6))
* **android:** allowFileAccessFromFileURLs prop added ([#831](https://github.com/CodinDotTop/react-native-webview/issues/831)) ([4db3d84](https://github.com/CodinDotTop/react-native-webview/commit/4db3d84dda6301005b3531a9ab690f194adcf677))
* **android:** Expose cacheMode property ([#895](https://github.com/CodinDotTop/react-native-webview/issues/895)) ([5da5925](https://github.com/CodinDotTop/react-native-webview/commit/5da59251cea7e979f07e877deb555c8c93cf0f8c))
* **android:** fix overflow issues and match iOS default renders ([#472](https://github.com/CodinDotTop/react-native-webview/issues/472)) ([319a86e](https://github.com/CodinDotTop/react-native-webview/commit/319a86e2361ac0161cbe2897a907d43b085029fc)), closes [#466](https://github.com/CodinDotTop/react-native-webview/issues/466) [#194](https://github.com/CodinDotTop/react-native-webview/issues/194)
* **android:** Migrate to Android X ([#520](https://github.com/CodinDotTop/react-native-webview/issues/520)) ([1d6c88d](https://github.com/CodinDotTop/react-native-webview/commit/1d6c88dcf57ecee67a6e7e84a032fc4642e6c1bd))
* **android:** polyfill applicationNameForUserAgent on Android ([#707](https://github.com/CodinDotTop/react…
jaynilson added a commit to jaynilson/reactNative_service_USA that referenced this pull request Sep 11, 2024
# [10.3.0](react-native-webview/react-native-webview@v10.2.3...v10.3.0) (2020-06-13)

### Features

* **android:** Add support for injectedJavaScriptBeforeContentLoaded on Android ([#1099](react-native-webview/react-native-webview#1099) by @SRandazzo and @ [@shirakaba](https://github.com/shirakaba)) ([ac4e05e](react-native-webview/react-native-webview@ac4e05e))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Maintainer: ready to publish This PR has been reviewed and is ready to be published released
Projects
None yet
Development

Successfully merging this pull request may close these issues.