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 onOpenWindow event #2640

Merged

Conversation

Ldoppea
Copy link
Contributor

@Ldoppea Ldoppea commented Aug 15, 2022

Hi,

This PR is a proposal for handling target=_blank links and JS window.open() calls that usually ends to opening a new tab/window in a web browser.

With current implementation, those links are handled differently on iOS and Android.

The idea is to introduce a react-native onOpenWindow event that would be called when the WebView wants to open a new tab/window.

By doing so, the developper can control what is done with those links and (if needed) to force same behavior on iOS and Android.

This is something I need in my current project as I want to open those links using an InAppBrowser. Also I want to have control on which links I allow to open or not.

The API would be used like this:

<webview
  source={source}
  onOpenWindow={(syntheticEvent) => {
    const { nativeEvent } = syntheticEvent
    const { targetUrl } = nativeEvent
    
    if (isFromMyDomain(targetUrl)) {
      navigateTo(targetUrl)
    } else {
      openInAppBrowser(targetUrl)
    }
  }}
/>

If onOpenWindow is not defined, then the old behavior is applied

By doing so, I think this would answer some of existing issues that needs to disable opening the browser (#2164), open popups in the app (#2087) or maybe force the same behavior on both Android and iOS (#1855 and #139).

Old behavior

  • On Android
    • <a href="https://example.com" target="_blank" /> from DOM -> opens the device's browser
    • window.open('https://example.com', '_blank') from JS -> opens the device's browser
  • On iOS
    • <a href="https://example.com" target="_blank" /> from DOM -> opens the link in the current webview
    • window.open('https://example.com', '_blank') from JS -> opens the link in the current webview

New behavior

  • On Android
    • <a href="https://example.com" target="_blank" /> from DOM -> calls onOpenWindow if defined, otherwise opens the device's browser
    • window.open('https://example.com', '_blank') from JS -> calls onOpenWindow if defined, otherwise opens the device's browser
  • On iOS
    • <a href="https://example.com" target="_blank" /> from DOM -> calls onOpenWindow if defined, otherwise opens the link in the current webview
    • window.open('https://example.com', '_blank') from JS -> calls onOpenWindow if defined, otherwise opens the link in the current webview

Example

I wrote an example in example/examples/OpenWindow.tsx. It is accessible from OPENWINDOW tab.

In this example you can compare behaviors with and without the onOpenWindow event by toggling the Intercept OpenWindow event switch.

In the WebView there is a button for calling window.open() and a link for testing both scenario.

On iOS, because the old behavior does a navigation, you can use the RESET WEBVIEW button to go back to the example page.

Notes

target="_blank" on iOS

On 1403f01 I wrote specific code to handle target="_blank" links from onShouldStartLoadWithRequest.

This is because on my project I have a hook that react to the WebView ref changes. I noticed that in createWebViewWithConfiguration the WebView's ref would be updated with the new URL whatever is done. So we should intercept target="_blank" links before this method is called (this worked fine with window.open()).

hasTargetFrame on iOS

On iOS I added the hasTargetFrame boolean to onShouldStartLoadWithRequest parameters. I used this value to detect new tab/window links on iOS and I thought it was a good thing to expose it also in onShouldStartLoadWithRequest: 34375e9

Event registration detection on Android

In 6c3d521 I tried to call the event only if defined on react-native props. I'm not sure this is the correct way, but I don't know how to do this without using a dedicated prop.

Do you know a better solution?

Also this does not update after first initialisation as onDropViewInstance is called on Android after the view is initialized. So mWebChromeClient becomes null and I then I don't know how to update it. I don't need this feature so I did not investigate much (note that the example works because I reset the WebView by changing its key prop)
fixed thanks to @TheAlmightyBob on this comment

Note that I tried implementing an event with callback, but I failed to handle the callback from the RNCWebChromeClient.

Event registration detection on iOS

I did the same on iOS in 3ecf879 but here I didn't need to use a dedicated prop.

In my project (rn 0.66.4), I don't need this commit to detect the event registration (the if (_onOpenWindow) code works from scratch), but on your Example projet I need to. I don't know why the behavior is different on both project. But the version with the latest commit works on both, so I suppose it costs nothing to add this commit?

iOS build instructions

I fixed the documentation about iOS build instruction as the previous version did not work on my computer. Tell me if you want me to extract this commit into another PR

macOS and Windows implementation

I did not implement this event on macOS and Windows because I don't need them and it would take me a bit of time to install environment for those platforms + I don't know if my solution would be accepted by your team.

But if you think my PR is eligible for a merge and if you want me to implement those platforms, I can make a try.

Ldoppea added a commit to cozy/cozy-flagship-app that referenced this pull request Aug 17, 2022
When the WebView tries to open a new window or tab, we want to
intercept the action and handle the navigation from the native code

If the requested URL is from the same cozy-app, then we want the
cozy-app to navigate to the URL inside of the same webView

If the requested URL is from another cozy-app but the same Cozy, then
we want the native code to navigate to the new cozy-app

If the requested URL is from outside of the Cozy, then we want to open
the URL in an InAppBrowser

Related PR: react-native-webview/react-native-webview#2640
Related PR: cozy/react-native-webview#2
Ldoppea added a commit to cozy/cozy-flagship-app that referenced this pull request Aug 18, 2022
When the WebView tries to open a new window or tab, we want to
intercept the action and handle the navigation from the native code

If the requested URL is from the same cozy-app, then we want the
cozy-app to navigate to the URL inside of the same webView

If the requested URL is from another cozy-app but the same Cozy, then
we want the native code to navigate to the new cozy-app

If the requested URL is from outside of the Cozy, then we want to open
the URL in an InAppBrowser

Related PR: react-native-webview/react-native-webview#2640
Related PR: cozy/react-native-webview#2
whoisdominic
whoisdominic previously approved these changes Aug 18, 2022
@jackkinsella
Copy link

I'm very excited about this PR -- I think it's gonna be a great addition to the library, especially for people building hybrid web/React Native apps.

Ldoppea added a commit to cozy/cozy-flagship-app that referenced this pull request Aug 26, 2022
When the WebView tries to open a new window or tab, we want to
intercept the action and handle the navigation from the native code

If the requested URL is from the same cozy-app, then we want the
cozy-app to navigate to the URL inside of the same webView

If the requested URL is from another cozy-app but the same Cozy, then
we want the native code to navigate to the new cozy-app

If the requested URL is from outside of the Cozy, then we want to open
the URL in an InAppBrowser

Related PR: react-native-webview/react-native-webview#2640
Related PR: cozy/react-native-webview#2
Ldoppea added a commit to cozy/cozy-flagship-app that referenced this pull request Aug 26, 2022
When the WebView tries to open a new window or tab, we want to
intercept the action and handle the navigation from the native code

If the requested URL is from the same cozy-app, then we want the
cozy-app to navigate to the URL inside of the same webView

If the requested URL is from another cozy-app but the same Cozy, then
we want the native code to navigate to the new cozy-app

If the requested URL is from outside of the Cozy, then we want to open
the URL in an InAppBrowser

Related PR: react-native-webview/react-native-webview#2640
Related PR: cozy/react-native-webview#2
Ldoppea added a commit to cozy/cozy-flagship-app that referenced this pull request Aug 26, 2022
When the WebView tries to open a new window or tab, we want to
intercept the action and handle the navigation from the native code

If the requested URL is from the same cozy-app, then we want the
cozy-app to navigate to the URL inside of the same webView

If the requested URL is from another cozy-app but the same Cozy, then
we want the native code to navigate to the new cozy-app

If the requested URL is from outside of the Cozy, then we want to open
the URL in an InAppBrowser

Related PR: react-native-webview/react-native-webview#2640
Related PR: cozy/react-native-webview#2
Ldoppea added a commit to cozy/cozy-flagship-app that referenced this pull request Aug 26, 2022
When the WebView tries to open a new window or tab, we want to
intercept the action and handle the navigation from the native code

If the requested URL is from the same cozy-app, then we want the
cozy-app to navigate to the URL inside of the same webView

If the requested URL is from another cozy-app but the same Cozy, then
we want the native code to navigate to the new cozy-app

If the requested URL is from outside of the Cozy, then we want to open
the URL in an InAppBrowser

Related PR: react-native-webview/react-native-webview#2640
Related PR: cozy/react-native-webview#2
@allan-simon
Copy link

Excited too, if we can do anything to help this move forward , let us know :)

l1ttps
l1ttps previously approved these changes Sep 1, 2022
Copy link

@l1ttps l1ttps left a comment

Choose a reason for hiding this comment

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

nice

@allan-simon
Copy link

@Ldoppea can you rebase ?

@Ldoppea
Copy link
Contributor Author

Ldoppea commented Sep 1, 2022

@Ldoppea can you rebase ?

Hi, I just did it, thanks for the reminder 👍

@saifudheenpm3
Copy link

I'm too excited for this PR.
My work involves hybrid apps.
I'm in a tough spot and could really have used this feature. onOpenWindow 🔥

Copy link
Collaborator

@TheAlmightyBob TheAlmightyBob left a comment

Choose a reason for hiding this comment

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

Just a first pass review but in general I like what I'm seeing thus far. Thank you in particular for the detailed writeup, example app update, and making the behavior opt-in.

apple/RNCWebView.m Outdated Show resolved Hide resolved
src/WebView.android.tsx Show resolved Hide resolved
docs/Reference.md Outdated Show resolved Hide resolved
docs/Reference.md Show resolved Hide resolved
example/examples/OpenWindow.tsx Outdated Show resolved Hide resolved
example/examples/OpenWindow.tsx Outdated Show resolved Hide resolved
src/WebView.ios.tsx Show resolved Hide resolved
src/WebViewTypes.ts Outdated Show resolved Hide resolved
@TheAlmightyBob
Copy link
Collaborator

this does not update after first initialisation as onDropViewInstance is called on Android after the view is initialized. So mWebChromeClient becomes null and I then I don't know how to update it

This is very curious to me and I wonder if it's a bug? I would expect other functionality to be broken if onDropViewInstance is being called right after the view is initialized...??

That said, possibly you could work around it by using WebView.getWebChromeClient instead of directly accessing mWebChromeClient?

@TheAlmightyBob
Copy link
Collaborator

I've also been pondering whether "real" multi-window support could be added (such that the caller of window.open would get a proper reference to the opened window and the opened window could use window.opener), possibly leveraging some of the same ideas as in #2469 for managing multiple WebViews in a dictionary....

But of course that's much more complex and I think there would still be use cases that prefer what you've got here. 🙂

@Ldoppea Ldoppea force-pushed the feat/on_open_window branch 2 times, most recently from 1b03904 to 857ef17 Compare September 5, 2022 16:00
@Ldoppea
Copy link
Contributor Author

Ldoppea commented Sep 5, 2022

this does not update after first initialisation as onDropViewInstance is called on Android after the view is initialized. So mWebChromeClient becomes null and I then I don't know how to update it

This is very curious to me and I wonder if it's a bug? I would expect other functionality to be broken if onDropViewInstance is being called right after the view is initialized...??

That said, possibly you could work around it by using WebView.getWebChromeClient instead of directly accessing mWebChromeClient?

This did the trick. Now the prop is propagated in realtime. Thanks for the tips @TheAlmightyBob 👍

I made the edit here: https://github.com/react-native-webview/react-native-webview/compare/1b03904b3c44b0e31fa7e7108bae9b30c1af1418..857ef17254da7c8c82f583ba0f6736fb36962205

@Ldoppea
Copy link
Contributor Author

Ldoppea commented Sep 5, 2022

I've also been pondering whether "real" multi-window support could be added (such that the caller of window.open would get a proper reference to the opened window and the opened window could use window.opener), possibly leveraging some of the same ideas as in #2469 for managing multiple WebViews in a dictionary....

But of course that's much more complex and I think there would still be use cases that prefer what you've got here. 🙂

Yes, in my project we have multiple webView that interact with each other. When we encounter a link we want to react based on the link type:

  • If the link redirects to another app from our ecosystem, then we want to prevent the navigation and open it in our app using a dedicated react-native route
  • If the link redirects outside of our ecosystem, then we want to open it in an InAppBrowser

Those two scenario should work regardless of the link target (simple redirection, new tab or new window). That's why a generic multi-window wouldn't fit our need.

apple/RNCWebView.m Outdated Show resolved Hide resolved
@TheAlmightyBob TheAlmightyBob dismissed their stale review July 7, 2023 02:14

Doesn't yet work on iOS with new architecture

@TheAlmightyBob
Copy link
Collaborator

Okay, so:

  1. The failure to render the WebView on the iOS New Architecture, Javascript in the Webview is not executed on iOS with new RN architecture from 13.0.0 #3003, and I believe even the crashes on the old architecture all appear to be a regression due to [iOS] Fix webview not loading in background tab #2930. Not related to this PR. (that previous PR was a small change so it was easy to locally revert and get the tests working again)
  2. However, with that out of the way, this still doesn't work on the iOS New Architecture yet. Looks like additional changes are required to RNCWebView.mm... this whole file is specific to the new architecture, and there is some boilerplate required there to hook up events now.

…itecture

(hasOnOpenWindowEvent wasn't required with the iOS old architecture but is with the new architecture... following the pattern of onFileDownload, which also has a NewArch-specific hasOnFileDownload)
@TheAlmightyBob
Copy link
Collaborator

@Ldoppea I just added a commit that should get this working with the iOS new architecture and welcome your review of the change.

@o-alexandrov
Copy link

o-alexandrov commented Jul 18, 2023

Thank you very much, this PR works with react-native@0.72.3 and by installing react-native-webview specifying a commit from this PR (see below). What you see below (the commit hash) is react-native-webview@13.2.3 + this PR's onOpenWindow feature.
In case anyone else wants to test in their apps, use the following format for npm in your package.json:

{
  "dependencies": {
    "react-native-webview": "github:Ldoppea/react-native-webview#667cfec3900560a724c4ad111d4bdbb76f7eba14"
  }
}

@o-alexandrov
Copy link

o-alexandrov commented Jul 21, 2023

@Ldoppea @TheAlmightyBob Sorry for the ping and being just a tester.
Please be informed, when window.open is triggered in an async function w/ a pause, onOpenWindow in ReactNative won't be triggered.

onOpenWindow is triggered in ReactNative

// React component that's running in a WebView
const Component = () => {
  // "async" directive doesn't break, it still works. It will break in the next case when there's an "await"
  const openWindow = async () => {
    window.open(`https://youtu.be`)
  }
  return <div onClick={openWindow} style={{ width: 100, height: 100, background: "red" }} />
}

onOpenWindow is NOT triggered

// React component that's running in a WebView
const Component = () => {
  const openWindow = async () => {
    const pauseThread = () => new Promise((resolve) => setTimeout(resolve, 1000))
    await pauseThread()
    window.open(`https://youtu.be`)
  }
  return <div onClick={openWindow} style={{ width: 100, height: 100, background: "red" }} />
}

@TheAlmightyBob
Copy link
Collaborator

@o-alexandrov Are you seeing this on iOS/Android/both?

Does anything happen?

just a tester

Testing open PRs before they get merged is extremely valuable and appreciated.

@Ldoppea
Copy link
Contributor Author

Ldoppea commented Jul 22, 2023

Hi,

I think this is a correct behaviour. In classic browsers, window.open() should be called synchronously as they want to limit the opening of popups to being in direct response to user input.

In reallity you can open them asynchronously but there is some "maximum delay" that should occur between user input and window.open() call. However there seems to be no official number about that delay.

I suppose that this behaviour is the same for webviews?

image

@Ldoppea
Copy link
Contributor Author

Ldoppea commented Jul 22, 2023

However I'm wondering if we can have control on this using native webview APIs 🤔

@o-alexandrov
Copy link

o-alexandrov commented Jul 22, 2023

EDIT: @TheAlmightyBob I've tested on Android & iOS. I made a wrong call, there's no bug.

  • Created a minimal repro repo to check what happens, if a browser is opened directly on a mobile device, not as a webview (react-native-webview).

Chrome (Android) is fine with a delay of up to 5 seconds, whereas Safari (iOS) can allow a delay of only up to 999ms (1 second).

@Ldoppea I agree with your points and it would be awesome, if you could handle this case; however, since it's not a bug, imho, it's fine to keep the same UX as in the browser.

@TheAlmightyBob
Copy link
Collaborator

Thank you both for looking into that and following up

@TheAlmightyBob TheAlmightyBob merged commit 933fe19 into react-native-webview:master Jul 24, 2023
11 checks passed
@TheAlmightyBob
Copy link
Collaborator

@Ldoppea Thanks for all the work and patience on this one!

react-native-community-bot pushed a commit that referenced this pull request Jul 24, 2023
# [13.3.0](v13.2.3...v13.3.0) (2023-07-24)

### Features

* Add `onOpenWindow` event ([#2640](#2640)) ([933fe19](933fe19))
@react-native-community-bot
Copy link
Collaborator

🎉 This PR is included in version 13.3.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@Ldoppea
Copy link
Contributor Author

Ldoppea commented Jul 24, 2023

@Ldoppea Thanks for all the work and patience on this one!

Ohh! This GH notification made my day 🎉

Thank you too for all your efforts maintaining this lib 🙂

@jayon-niravel
Copy link

jayon-niravel commented Jul 24, 2023

Issue
I tested with the latest release but could not open the window inside webview (using android). Can you suggest what I am doing wrong here?

return <WebView
source={{
 uri: `some_randome_url`
}}
            javaScriptCanOpenWindowsAutomatically={true}
            originWhitelist={['*']}
            onOpenWindow={(syntheticEvent) => {
            const { nativeEvent } = syntheticEvent;
            const { targetUrl } = nativeEvent
            console.log('Intercepted OpenWindow for', targetUrl)
            }}
        />;
    The URL "some_randome_url" have below line in the html
    `<a href="https://www.google.com" target="_blank">testing link</a>`
    
    
    Clicking on above link, opens it on external window.

@Titozzz
Copy link
Collaborator

Titozzz commented Jul 24, 2023

Huge thanks to @TheAlmightyBob for taking the time to review / merge

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…
loatheb pushed a commit to OneKeyHQ/react-native-webview that referenced this pull request Mar 15, 2024
* chore(ci): Update React Native to fix Android build (react-native-webview#2734)

See facebook/react-native#35210

* chore(docs): Add information that custom menu items are only available for iOS (react-native-webview#2748)

* feat(ios): Cookie sync improvements (react-native-webview#2535)

* chore(release): 11.24.0 [skip ci]

# [11.24.0](react-native-webview/react-native-webview@v11.23.1...v11.24.0) (2022-11-23)

### Features

* **ios:** Cookie sync improvements ([react-native-webview#2535](react-native-webview#2535)) ([4ac0d74](react-native-webview@4ac0d74))

* feat(Android): Handle RESOURCE_PROTECTED_MEDIA_ID permission (react-native-webview#2732)

* chore(release): 11.25.0 [skip ci]

# [11.25.0](react-native-webview/react-native-webview@v11.24.0...v11.25.0) (2022-11-26)

### Features

* **Android:** Handle RESOURCE_PROTECTED_MEDIA_ID permission ([react-native-webview#2732](react-native-webview#2732)) ([2711f3a](react-native-webview@2711f3a))

* fix(android): Respect "filename*" parameter in the field Content-Disposition when detecting filenames for downloading. (react-native-webview#2767)

* chore(release): 11.25.1 [skip ci]

## [11.25.1](react-native-webview/react-native-webview@v11.25.0...v11.25.1) (2022-12-07)

### Bug Fixes

* **android:** Respect "filename*" parameter in the field Content-Disposition when detecting filenames for downloading. ([react-native-webview#2767](react-native-webview#2767)) ([47c05b0](react-native-webview@47c05b0))

* feat(macos): Support File Input On Macos (react-native-webview#2733)

* chore(release): 11.26.0 [skip ci]

# [11.26.0](react-native-webview/react-native-webview@v11.25.1...v11.26.0) (2022-12-09)

### Features

* **macos:** Support File Input On Macos ([react-native-webview#2733](react-native-webview#2733)) ([9b7ce57](react-native-webview@9b7ce57))

* chore: Update Getting-Started.md (react-native-webview#2791)

* fix(js): messagingEnabled prop (react-native-webview#2666)

This was always being set to "true", even if no onMessage handler was provided

* chore(docs): Add info/warning about injectedJavaScriptBeforeContentLoaded for Android (react-native-webview#2746)

* Add acknowledgement that injectedJavaScriptBeforeContentLoaded is implemented for Android, but warning that it may be unreliable

* Linkify?

* chore: bump react-native-macos to 0.68 (react-native-webview#2828)

* chore(release): 11.26.1 [skip ci]

## [11.26.1](react-native-webview/react-native-webview@v11.26.0...v11.26.1) (2023-01-27)

### Bug Fixes

* **js:** messagingEnabled prop ([react-native-webview#2666](react-native-webview#2666)) ([f74ee7a](react-native-webview@f74ee7a))

* chore(docs): Fix clearCache link in index (react-native-webview#2814)

* chore(docs): README fixes: badge, minor wording tweaks (react-native-webview#2880)

* chore: Update Guide.md (react-native-webview#2906)

* feat: Fabric support (react-native-webview#2686)

Hello everyone, the support for new architecture (fabric) is finally landing 🚀 . I've taken a lot of time but I've had to re-understand the whole codebase, the old arch, the new arch, and I did not want to take too many shortcuts.

This release should be mostly non breaking (except for a few well deserved props removals).
HOWEVER, this is a lot of code over a lot of time. Mistakes can happen, if you feel unsafe stick to v11 for a lil' while.

Finally this will unblock many PR (sorry for the conflicts in advance), so let's get releasing again 🔥 

If you appreciate my work please to [sponsor me](https://github.com/sponsors/Titozzz)

BREAKING CHANGE:

- If you are using custom native implementation are still possible on the old arch but many classes were moved / renamed so they will need some changes

- removed the following props: androidHardwareAccelerationDisabled (deprecated), urlPrefixesForDefaultIntent (unused)

* chore(release): 12.0.0 [skip ci]

# [12.0.0](react-native-webview/react-native-webview@v11.26.1...v12.0.0) (2023-04-01)

### Features

* Fabric support ([react-native-webview#2686](react-native-webview#2686)) ([5558e28](react-native-webview@5558e28))

### BREAKING CHANGES

* - If you are using custom native implementation are still possible on the old arch but many classes were moved / renamed so they will need some changes

- removed the following props: androidHardwareAccelerationDisabled (deprecated), urlPrefixesForDefaultIntent (unused)

* fix(iOS): Foundation Import (react-native-webview#2917)

Fixed a build issue that could be happening on iOS see react-native-webview#2915

* chore(release): 12.0.1 [skip ci]

## [12.0.1](react-native-webview/react-native-webview@v12.0.0...v12.0.1) (2023-04-04)

### Bug Fixes

* **iOS:** Foundation Import ([react-native-webview#2917](react-native-webview#2917)) ([a2eec17](react-native-webview@a2eec17)), closes [react-native-webview#2915](react-native-webview#2915)

* fix(ios): fix userAgent ios type comment (react-native-webview#2888)

* chore(release): 12.0.2 [skip ci]

## [12.0.2](react-native-webview/react-native-webview@v12.0.1...v12.0.2) (2023-04-06)

### Bug Fixes

* **ios:** fix userAgent ios type comment ([react-native-webview#2888](react-native-webview#2888)) ([4d0c0de](react-native-webview@4d0c0de))

* fix(Android): Don't crash while downloading file with % in filename (react-native-webview#2861)

* chore(release): 12.0.3 [skip ci]

## [12.0.3](react-native-webview/react-native-webview@v12.0.2...v12.0.3) (2023-05-22)

### Bug Fixes

* **Android:** Don't crash while downloading file with % in filename ([react-native-webview#2861](react-native-webview#2861)) ([81e3aa4](react-native-webview@81e3aa4))

* bump min version (react-native-webview#2955)

* chore: fix typo (react-native-webview#2868)

* feat: make pushState changes trackable on android (react-native-webview#2929)

Authored-by: Peter Lazar <peter.lazar@limehome.de>

* chore(release): 12.1.0 [skip ci]

# [12.1.0](react-native-webview/react-native-webview@v12.0.3...v12.1.0) (2023-05-23)

### Features

* make pushState changes trackable on android ([react-native-webview#2929](react-native-webview#2929)) ([39ce007](react-native-webview@39ce007))

* Missing android.support.FILE_PROVIDER_PATHS meta-data on some OEMs (react-native-webview#2952)

We (Microsoft Office apps) are seeing the following crashes in certain OEMs (biased toward Samsung)
Exception java.lang.RuntimeException: Unable to get provider com.reactnativecommunity.webview.RNCWebViewFileProvider: java.lang.IllegalArgumentException: Missing android.support.FILE_PROVIDER_PATHS meta-data
  at android.app.ActivityThread.installProvider (ActivityThread.java:6840)
  at android.app.ActivityThread.installContentProviders (ActivityThread.java:6382)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6286)
  ...
Caused by java.lang.IllegalArgumentException: Missing android.support.FILE_PROVIDER_PATHS meta-data
  at androidx.core.content.FileProvider.d
  at androidx.core.content.FileProvider.h
  at androidx.core.content.FileProvider.e
  at androidx.core.content.FileProvider.attachInfoMAM
  ..

Upon further investigation, we found the hypothesis that some OEMs strip meta-data from the manifest (though we don't have any solid data to confirm).

This discussion is related : https://issuetracker.google.com/issues/237727754?pli=1
And this commit into AOSP : https://android-review.googlesource.com/c/platform/frameworks/support/+/1978527

* feat(windows): Support headers and cookies in source prop (react-native-webview#2897)

* [windows] Support headers and cookies in source prop

* minor fixes

* chore(release): 12.2.0 [skip ci]

# [12.2.0](react-native-webview/react-native-webview@v12.1.0...v12.2.0) (2023-06-01)

### Features

* **windows:** Support headers and cookies in source prop ([react-native-webview#2897](react-native-webview#2897)) ([1851ead](react-native-webview@1851ead))

* fix: Revert "Missing android.support.FILE_PROVIDER_PATHS meta-data on some OEMs (react-native-webview#2952)"

This reverts commit 75e7801.

* chore(release): 12.2.1 [skip ci]

## [12.2.1](react-native-webview/react-native-webview@v12.2.0...v12.2.1) (2023-06-10)

### Bug Fixes

* Revert "Missing android.support.FILE_PROVIDER_PATHS meta-data on some OEMs ([react-native-webview#2952](react-native-webview#2952))" ([e17a79b](react-native-webview@e17a79b))

* feat: custom action menu on android + improved iOS (react-native-webview#2993)

* Update RNCWebView.java

* Update RNCWebView.java

* wip

* wip

* fix build on latest xcode

* add example + fix a few things

* Update RNCWebViewImpl.m

* fix macOS build

* chore(release): 12.3.0 [skip ci]

# [12.3.0](react-native-webview/react-native-webview@v12.2.1...v12.3.0) (2023-06-10)

### Features

* custom action menu on android + improved iOS ([react-native-webview#2993](react-native-webview#2993)) ([f2aef66](react-native-webview@f2aef66))

* feat: debugging enabled prop (react-native-webview#2937)

* feat: add webviewDebuggingEnabled prop & Android implementation

fix: use static RNCWebView.setWebContentsDebuggingEnabled

* feat: add iOS webviewDebuggingEnabled prop

* chore: remove "link generted with jump2header" comments

* chore: add missing props-index links in Reference.md

* feat: add webviewDebuggingEnabled reference docs

* fix: surround inspectable code blocks with compiler preprocessor to include only on appropriate versions


---------

Co-authored-by: Tom Bury <tom.bury@twipemobile.com>

* chore(release): 12.4.0 [skip ci]

# [12.4.0](react-native-webview/react-native-webview@v12.3.0...v12.4.0) (2023-06-10)

### Features

* debugging enabled prop ([react-native-webview#2937](react-native-webview#2937)) ([f9a5277](react-native-webview@f9a5277))

* feat: Allow webview to load in background tab (react-native-webview#2930)

BREAKING CHANGE: This affects an existing loading behavior so we marked it as breaking, just in case

Co-authored-by: Peter Lazar <peter.lazar@limehome.de>
Co-authored-by: Thibault Malbranche <thibault@brigad.co>

* chore(release): 13.0.0 [skip ci]

# [13.0.0](react-native-webview/react-native-webview@v12.4.0...v13.0.0) (2023-06-10)

### Features

* Allow webview to load in background tab ([react-native-webview#2930](react-native-webview#2930)) ([40c9807](react-native-webview@40c9807))

### BREAKING CHANGES

* This affects an existing loading behavior so we marked it as breaking, just in case

Co-authored-by: Peter Lazar <peter.lazar@limehome.de>
Co-authored-by: Thibault Malbranche <thibault@brigad.co>

* feat(iOS): fraudulent website warning setting (previously react-native-webview#2801) (react-native-webview#2994)

* feat: fraudulentWebsiteWarningEnabled
* chore: test new arch on CI

# Conflicts:
#	docs/Reference.md

* fix: missing type

* feat: add ios13 check

* Update src/WebViewTypes.ts

Co-authored-by: Caleb Clarke <TheAlmightyBob@users.noreply.github.com>

* Update docs/Reference.md

Co-authored-by: Caleb Clarke <TheAlmightyBob@users.noreply.github.com>

* implem adaptation

* Update ios-ci.yml

* Update ios-ci.yml

* Update android-ci.yml

* Update ios-ci.yml

* fix android new arch

* Update ios-ci.yml

---------

Co-authored-by: sunnylqm <sunnylqm@gmail.com>
Co-authored-by: Caleb Clarke <TheAlmightyBob@users.noreply.github.com>

* chore(release): 13.1.0 [skip ci]

# [13.1.0](react-native-webview/react-native-webview@v13.0.0...v13.1.0) (2023-06-10)

### Features

* **iOS:** fraudulent website warning setting (previously [react-native-webview#2801](react-native-webview#2801)) ([react-native-webview#2994](react-native-webview#2994)) ([6d185e6](react-native-webview@6d185e6))

* feat(android): Add support for the `capture` attribute (react-native-webview#2954)

Co-authored-by: Thibault Malbranche <thibault@brigad.co>

* chore(release): 13.2.0 [skip ci]

# [13.2.0](react-native-webview/react-native-webview@v13.1.0...v13.2.0) (2023-06-11)

### Features

* **android:** Add support for the `capture` attribute ([react-native-webview#2954](react-native-webview#2954)) ([966221e](react-native-webview@966221e))

* fix: build on 0.72 new arch (react-native-webview#2997)

* chore(release): 13.2.1 [skip ci]

## [13.2.1](react-native-webview/react-native-webview@v13.2.0...v13.2.1) (2023-06-12)

### Bug Fixes

* build on 0.72 new arch ([react-native-webview#2997](react-native-webview#2997)) ([7ceeb2f](react-native-webview@7ceeb2f))

* fix(macOS): address regression due to didMoveToSuperview (react-native-webview#3006)

Co-authored-by: Vahagn Nikoghosyan <vahagnn@meta.com>

* chore(release): 13.2.2 [skip ci]

## [13.2.2](react-native-webview/react-native-webview@v13.2.1...v13.2.2) (2023-06-14)

### Bug Fixes

* **macOS:** address regression due to didMoveToSuperview ([react-native-webview#3006](react-native-webview#3006)) ([41576ca](react-native-webview@41576ca))

* chore(docs): Add Italian translation to the docs 🇮🇹📖 (react-native-webview#3031)

* fix: Revert didMoveToSuperview back to didMoveToWindow (react-native-webview#3041)

Fixes multiple issues with the iOS new architecture (WebViews not rendering, javascript on pages not working, possibly more) and occasional crash with the iOS old architecture.

* chore(release): 13.2.3 [skip ci]

## [13.2.3](react-native-webview/react-native-webview@v13.2.2...v13.2.3) (2023-07-18)

### Bug Fixes

* Revert didMoveToSuperview back to didMoveToWindow ([react-native-webview#3041](react-native-webview#3041)) ([836f717](react-native-webview@836f717))

* chore: Update Guide.md to link a working static server package (react-native-webview#3049)

The static server package does not seem to work in the later version of React Native. Or, there's a way to make it work but not discussed. 
A fork of this [library](https://github.com/birdofpreyru/react-native-static-server) works as expected. 
While it may not have many 'stars' the fact that it works and is also maintained, makes it a more suitable candidate.

* feat: Add `onOpenWindow` event (react-native-webview#2640)

* chore(release): 13.3.0 [skip ci]

# [13.3.0](react-native-webview/react-native-webview@v13.2.3...v13.3.0) (2023-07-24)

### Features

* Add `onOpenWindow` event ([react-native-webview#2640](react-native-webview#2640)) ([933fe19](react-native-webview@933fe19))

* chore(docs): Fix typo in Reference.md (react-native-webview#3071)

* fix(docs): Reference documentation updates for menuItems (react-native-webview#3046)

* chore(release): 13.3.1 [skip ci]

## [13.3.1](react-native-webview/react-native-webview@v13.3.0...v13.3.1) (2023-07-31)

### Bug Fixes

* **docs:** Reference documentation updates for menuItems ([react-native-webview#3046](react-native-webview#3046)) ([fcd6050](react-native-webview@fcd6050))

* chore(docs): Update debugging instructions (react-native-webview#3029)

* chore: bump react-native-macos to 0.71 (react-native-webview#3103)

* chore: bump react-native-macos to 0.71

* keep `add:macos`

* feat(iOS): Suppress menu items (react-native-webview#3082)

* chore(release): 13.4.0 [skip ci]

# [13.4.0](react-native-webview/react-native-webview@v13.3.1...v13.4.0) (2023-08-25)

### Features

* **iOS:** Suppress menu items ([react-native-webview#3082](react-native-webview#3082)) ([5cd324c](react-native-webview@5cd324c))

* feat: Add clearCache method on iOS (react-native-webview#3119)

* Add clearCache method on iOS

* Update ClearData.tsx to remove comments

Co-authored-by: Jamon Holmgren <jamonholmgren@gmail.com>

* Update ClearData.tsx to remove commented code

Co-authored-by: Jamon Holmgren <jamonholmgren@gmail.com>

---------

Co-authored-by: Jamon Holmgren <jamonholmgren@gmail.com>

* chore(release): 13.5.0 [skip ci]

# [13.5.0](react-native-webview/react-native-webview@v13.4.0...v13.5.0) (2023-08-29)

### Features

* Add clearCache method on iOS ([react-native-webview#3119](react-native-webview#3119)) ([0868f91](react-native-webview@0868f91))

* fix(ios): Fixes new ios clearCache method where it wasn't getting attached (react-native-webview#3122 by @jamonholmgren and @robinheinze)

* chore(release): 13.5.1 [skip ci]

## [13.5.1](react-native-webview/react-native-webview@v13.5.0...v13.5.1) (2023-08-29)

### Bug Fixes

* **ios:** Fixes new ios clearCache method where it wasn't getting attached ([react-native-webview#3122](react-native-webview#3122) by [@jamonholmgren](https://github.com/jamonholmgren) and [@robinheinze](https://github.com/robinheinze)) ([f101eaf](react-native-webview@f101eaf))

* feat(android): Android injectJavaScriptObject (react-native-webview#2960)

* chore(release): 13.6.0 [skip ci]

# [13.6.0](react-native-webview/react-native-webview@v13.5.1...v13.6.0) (2023-09-08)

### Features

* **android:** Android injectJavaScriptObject ([react-native-webview#2960](react-native-webview#2960)) ([447f68e](react-native-webview@447f68e))

* chore(docs): Add InjectedJavaScriptObject link in Reference.md (react-native-webview#3139)

* fix: add namespace to build.gradle for gradle 8 compat (required for 0.73) (react-native-webview#3055)

* Update build.gradle

* improve fix

* Update build.gradle

* Update build.gradle

---------

Co-authored-by: Thibault Malbranche <malbranche.thibault@gmail.com>

* chore(release): 13.6.1 [skip ci]

## [13.6.1](react-native-webview/react-native-webview@v13.6.0...v13.6.1) (2023-10-06)

### Bug Fixes

* add namespace to build.gradle for gradle 8 compat (required for 0.73) ([react-native-webview#3055](react-native-webview#3055)) ([c4c8e4c](react-native-webview@c4c8e4c))

* fix(android): Prevent libhwui crash when WebView is in ScrollView (react-native-webview#2874)

* fix(android): Prevent libhwui crash when WebView is in ScrollView

* fix incorrect reactTag for event passing

* fix regression from Background example test case

* fix getParent NPE

* Apply suggestions from code review

* Fix rebase conflict

* chore(release): 13.6.2 [skip ci]

## [13.6.2](react-native-webview/react-native-webview@v13.6.1...v13.6.2) (2023-10-06)

### Bug Fixes

* **android:** Prevent libhwui crash when WebView is in ScrollView ([react-native-webview#2874](react-native-webview#2874)) ([886664d](react-native-webview@886664d))

* fix: Adds field `"react-native"` to `package.json` (react-native-webview#3209)

* chore(release): 13.6.3 [skip ci]

## [13.6.3](react-native-webview/react-native-webview@v13.6.2...v13.6.3) (2023-11-22)

### Bug Fixes

* Adds field `"react-native"` to `package.json` ([react-native-webview#3209](react-native-webview#3209)) ([ecc1100](react-native-webview@ecc1100))

* fix(iOS): update podspec to use install_modules_dependencies (react-native-webview#3231)

* update podspec to be compatible with RN 0.72

* improved fallback

* chore(readme): fix typos (react-native-webview#3270)

Fixed grammar issues

* fix(android): add buildFeatures.buildConfig true for AGP8+ compat (react-native-webview#3219)

* chore(release): 13.6.4 [skip ci]

## [13.6.4](react-native-webview/react-native-webview@v13.6.3...v13.6.4) (2024-01-02)

### Bug Fixes

* **android:** add buildFeatures.buildConfig true for AGP8+ compat ([react-native-webview#3219](react-native-webview#3219)) ([f849077](react-native-webview@f849077))
* **iOS:** update podspec to use install_modules_dependencies ([react-native-webview#3231](react-native-webview#3231)) ([b4f047a](react-native-webview@b4f047a))

* chore(docs): update cacheEnabled description (react-native-webview#3260)

* chore(android): Update new architecture config (react-native-webview#3047)

* Update podspec

* Remove `react` block from `build.gradle`

---------

Co-authored-by: Thibault Malbranche <thibault@brigad.co>

* feat(Windows): Add support for custom headers, POST requests and `onOpenWindow` to Windows

* Add WindowsWebViewCommands and implement releaseFocus

* Fixes to setup request methos, added helpers class to visual studio project and fixed missing FocusManager namespace

* Add LinkHandlingEnabled property to allow application to handle request by the webview to open new windows

* Refactor cookie handling in ReactWebView2.cpp

* Fix WebView source handling and add new commands

* Add linkHandlingEnabled property to nativeProps

* Add postMessage and loadUrl commands to command list

* Add loadUrl function to WebViewComponent

* Refactor string manipulation functions in ReactWebViewHelpers

* Refactor cookie handling in ReactWebView2.cpp

* Update RNCWebViewUIManagerWindows type in WebViewTypes.ts

* Fix WebView messaging functionality

* Add useWebView2 prop to WebView component

* Update test to include alert support in WebView2

* Create Windows specific example components for testing webview scenarios

* Update documentation

---------

Co-authored-by: Kennedy Mumo <kemumo@microsoft.com>

* chore(release): 13.7.0 [skip ci]

# [13.7.0](react-native-webview/react-native-webview@v13.6.4...v13.7.0) (2024-01-31)

### Features

* **Windows:** Add support for custom headers, POST requests and `onOpenWindow` to Windows ([9e2794e](react-native-webview@9e2794e))

* fix(Windows): Refactor ReactWebView2.cpp to handle optional 'method' parameter (react-native-webview#3319)

Co-authored-by: Kennedy Mumo <kemumo@microsoft.com>

* chore(release): 13.7.1 [skip ci]

## [13.7.1](react-native-webview/react-native-webview@v13.7.0...v13.7.1) (2024-02-06)

### Bug Fixes

* **Windows:** Refactor ReactWebView2.cpp to handle optional 'method' parameter ([react-native-webview#3319](react-native-webview#3319)) ([f0791d8](react-native-webview@f0791d8))

* fix(ios, macos): Suspend media playback when destroying WebView on iOS/macOS (react-native-webview#3234)

* Suspend media playback when destroying WebView on iOS/macOS

* Fixes crash on iOS <15.0 and macOS <12.0 when pausing playback on dismount

---------

Co-authored-by: Thibault Malbranche <thibault@brigad.co>

* fix(iOS): Replace UIKit with RCTUIKit on MacOS for RCT_NEW_ARCH_ENABLED (react-native-webview#3296)

* Replace UIKit with RCTUIKit on MacOS for RCT_NEW_ARCH_ENABLED

* Exclude iOS specific destroy handler.

* Fix `Non-constant-expression cannot be narrowed from type 'BOOL' (aka 'signed char') to 'bool' in initializer` when building for Release

* Minor fix (typo)

* chore(release): 13.7.2 [skip ci]

## [13.7.2](react-native-webview/react-native-webview@v13.7.1...v13.7.2) (2024-02-13)

### Bug Fixes

* **iOS:** Replace UIKit with RCTUIKit on MacOS for RCT_NEW_ARCH_ENABLED ([react-native-webview#3296](react-native-webview#3296)) ([cb9fb9c](react-native-webview@cb9fb9c))
* **ios, macos:** Suspend media playback when destroying WebView on iOS/macOS ([react-native-webview#3234](react-native-webview#3234)) ([7af398c](react-native-webview@7af398c))

* feat(ios): ios injectJavaScriptObject (react-native-webview#3157)

* feat(ios): injectedJavaScriptObject props connect

* feat(ios): injectedJavaScriptObject ios component props

* feat(ios): injectedObjectJsonScript addUserScript

* refactor(ios): type position lines

* revert: src/WebViewTypes.ts

* docs: support injectedJavaScriptObject ios

* remove log

* fix(ios): return string single quote

* chore(release): 13.8.0 [skip ci]

# [13.8.0](react-native-webview/react-native-webview@v13.7.2...v13.8.0) (2024-02-13)

### Features

* **ios:** ios injectJavaScriptObject ([react-native-webview#3157](react-native-webview#3157)) ([8013944](react-native-webview@8013944))

* Fix NuGet package reference (react-native-webview#3242)

Co-authored-by: Thibault Malbranche <thibault@brigad.co>

* chore(types): Indentation error (react-native-webview#3292)

* fix(android): Fix WebViewManager can no longer be customized (react-native-webview#3315)

* chore(release): 13.8.1 [skip ci]

## [13.8.1](react-native-webview/react-native-webview@v13.8.0...v13.8.1) (2024-02-13)

### Bug Fixes

* **android:** Fix WebViewManager can no longer be customized ([react-native-webview#3315](react-native-webview#3315)) ([0068588](react-native-webview@0068588))

* Merge remote-tracking branch 'upstream/master'

* fix: replace the RNCWebView to RNCWebViewImpl

---------

Co-authored-by: Caleb Clarke <TheAlmightyBob@users.noreply.github.com>
Co-authored-by: Handschrift <privacy.mtehw@aleeas.com>
Co-authored-by: Matias Korhonen <matias.korhonen@kaikuhealth.com>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: enzo-macri <99820921+enzo-macri@users.noreply.github.com>
Co-authored-by: Xun Sun <UNIDY2002@outlook.com>
Co-authored-by: Amir Angel <36531255+17Amir17@users.noreply.github.com>
Co-authored-by: Gregory <95241798+Gregory-Coelho@users.noreply.github.com>
Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com>
Co-authored-by: Richard <9120292+Reisclef@users.noreply.github.com>
Co-authored-by: Jamon Holmgren <jamonholmgren@gmail.com>
Co-authored-by: Pierre-Alain Bouly <pab50000@gmail.com>
Co-authored-by: Thibault Malbranche <thibault@brigad.co>
Co-authored-by: Piotr Kochanowski <63232710+TheKohan@users.noreply.github.com>
Co-authored-by: Valentina M <valentinam@porch.com>
Co-authored-by: Tatiana Kapos <tatianakapos@microsoft.com>
Co-authored-by: flow <hyperflow@kakao.com>
Co-authored-by: Peter Lazar <peterlazar1993@gmail.com>
Co-authored-by: Anandraj <anandrag@microsoft.com>
Co-authored-by: vahagnni <asvahagnas@gmail.com>
Co-authored-by: Thibault Malbranche <malbranche.thibault@gmail.com>
Co-authored-by: Tom Bury <tom.bury@hotmail.com>
Co-authored-by: Tom Bury <tom.bury@twipemobile.com>
Co-authored-by: Peter Lazar <peter.lazar@limehome.de>
Co-authored-by: sunnylqm <sunnylqm@gmail.com>
Co-authored-by: Rob X <robxyy@gmail.com>
Co-authored-by: Vahagn Nikoghosyan <vahagnn@meta.com>
Co-authored-by: Davide Palazzo <davide@revengecreative.com>
Co-authored-by: Nikhil <6836536+qwertynik@users.noreply.github.com>
Co-authored-by: Yannick Chiron <yannick.chiron@gmail.com>
Co-authored-by: Pavlos Vinieratos <pvinis@gmail.com>
Co-authored-by: Naveen <naveen.naveen@gmail.com>
Co-authored-by: Tuur Dutoit <me@tuurdutoit.be>
Co-authored-by: Arjan Zuidema <flecks@gmail.com>
Co-authored-by: Robin Heinze <robin.m.heinze@gmail.com>
Co-authored-by: Kevin VanGelder <kevin.vangelder1@accesscfa.com>
Co-authored-by: Alex Hernandez <oorangecchicken@gmail.com>
Co-authored-by: Kudo Chien <ckchien@gmail.com>
Co-authored-by: Laurent Gaches <laurent@l18.dev>
Co-authored-by: Mehrdad Moradi <me@mmoradi.ca>
Co-authored-by: Mike Hardy <github@mikehardy.net>
Co-authored-by: Wanderson Alves <wandersonalwes@hotmail.com>
Co-authored-by: Jakub Piasecki <jakubpiasecki67@gmail.com>
Co-authored-by: John Kennedy Mumo <jfkenmumo@hotmail.com>
Co-authored-by: Kennedy Mumo <kemumo@microsoft.com>
Co-authored-by: David Sharp <hello@davidsharp.codes>
Co-authored-by: Ivan Suslov <digitalzuzel@gmail.com>
Co-authored-by: Sungyu Kang <gron1gh1@gmail.com>
Co-authored-by: Vijay Bindraban <2269400+VMBindraban@users.noreply.github.com>
Co-authored-by: Caspian Zhao <caspian.zhao@outlook.com>
Co-authored-by: Ryo Kuramoto <dekachan16@gmail.com>
@andophine
Copy link

Hi, if the target url in window.open is empty, onOpenWindow event won't be triggered. This is the case, need this feature for writing data to this new window. Thanks

@TheAlmightyBob
Copy link
Collaborator

How would you write data to the window if there's no URL open in it...?

@andophine
Copy link

How would you write data to the window if there's no URL open in it...?

An example, open the window and use javascript to write data.

function openQR(){  
    mywin = window.open('', "target='_blank', resizable=yes, scrollbars=yes, toolbar=yes, menubar=yes, location=no, directories=no, status=yes")  
    mywin.document.write("<p>dynamic QR Code</p>")  
}  

Full html example below

<!DOCTYPE html>
<html>
<head>
    <title>New Window Example</title>
</head>
<body>
    <button onclick="openNewWindow()">Open google</button>
    <p></p>
	<button onclick="openQR()">Open QR</button>
    <script>
        function openNewWindow() {
            window.open("https://www.google.com", "_blank");
        }
        function openQR(){
            mywin = window.open('', "target='_blank', resizable=yes, scrollbars=yes, toolbar=yes, menubar=yes, location=no, directories=no, status=yes")
            mywin.document.write("<p>dynamic QR Code</p>")
        }
    </script>
</body>
</html>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet