Commit Graph

724 Commits

Author SHA1 Message Date
jmheik d16746c8ea
fix(Windows): Move rnpm-plugin-windows to devDependencies. (#1266) 2020-04-09 09:28:28 -07:00
semantic-release-bot c8dc85d66e chore(release): 9.1.2 [skip ci]
## [9.1.2](https://github.com/react-native-community/react-native-webview/compare/v9.1.1...v9.1.2) (2020-04-09)

### Bug Fixes

* **Android:** Ensure each mounted WebView binds their personal onMessage handler ([#1301](https://github.com/react-native-community/react-native-webview/issues/1301)) ([04f9fb2](https://github.com/react-native-community/react-native-webview/commit/04f9fb2))
2020-04-09 15:09:23 +00:00
ivari 04f9fb23ba
fix(Android): Ensure each mounted WebView binds their personal onMessage handler (#1301)
* Ensure each mounted WebView binds their personal onMessage handler

* Changed unique ref generation to uuid

Uses `uuid` npm package.
Dashes are removed from the ref for sanity.
2020-04-09 08:05:44 -07:00
semantic-release-bot 8a46bb9453 chore(release): 9.1.1 [skip ci]
## [9.1.1](https://github.com/react-native-community/react-native-webview/compare/v9.1.0...v9.1.1) (2020-04-07)

### Bug Fixes

* **iOS:** injectedJavaScriptBeforeContentLoaded now runs when messaging is not enabled ([#1286](https://github.com/react-native-community/react-native-webview/issues/1286)) ([571fb8d](https://github.com/react-native-community/react-native-webview/commit/571fb8d))
2020-04-07 17:02:43 +00:00
Salvatore Randazzo 571fb8df79
fix(iOS): injectedJavaScriptBeforeContentLoaded now runs when messaging is not enabled (#1286) 2020-04-07 09:59:52 -07:00
semantic-release-bot fda1794035 chore(release): 9.1.0 [skip ci]
# [9.1.0](https://github.com/react-native-community/react-native-webview/compare/v9.0.2...v9.1.0) (2020-04-06)

### Features

* **Android:** Implement direct communication between Android code and JS ([#1203](https://github.com/react-native-community/react-native-webview/issues/1203)) ([c88e380](https://github.com/react-native-community/react-native-webview/commit/c88e380))
2020-04-06 17:27:43 +00:00
ivari c88e380762
feat(Android): Implement direct communication between Android code and JS (#1203) 2020-04-06 10:25:28 -07:00
semantic-release-bot 9fbcedd6b8 chore(release): 9.0.2 [skip ci]
## [9.0.2](https://github.com/react-native-community/react-native-webview/compare/v9.0.1...v9.0.2) (2020-03-27)

### Bug Fixes

* **types:** Remove readonly definition in WebViewTypes.ts ([#1272](https://github.com/react-native-community/react-native-webview/issues/1272)) ([3c06d78](https://github.com/react-native-community/react-native-webview/commit/3c06d78))
2020-03-27 15:43:13 +00:00
Giovanni Montenegro 3c06d78239
fix(types): Remove readonly definition in WebViewTypes.ts (#1272)
Co-authored-by: Giovanni Montenegro <giovanni.montenegro@fincons.com>
2020-03-27 08:33:14 -07:00
semantic-release-bot 2555297785 chore(release): 9.0.1 [skip ci]
## [9.0.1](https://github.com/react-native-community/react-native-webview/compare/v9.0.0...v9.0.1) (2020-03-17)

### Bug Fixes

* **deps:** Update lock file ([#1257](https://github.com/react-native-community/react-native-webview/issues/1257)) ([9732d65](https://github.com/react-native-community/react-native-webview/commit/9732d65))
2020-03-17 21:49:56 +00:00
Jason Safaiyeh 9732d65289
fix(deps): Update lock file (#1257) 2020-03-17 14:47:21 -07:00
semantic-release-bot bff88f8281 chore(release): 9.0.0 [skip ci]
# [9.0.0](https://github.com/react-native-community/react-native-webview/compare/v8.2.1...v9.0.0) (2020-03-17)

### Features

* **iOS:** WKUserScripts (e.g. injectedJavaScript) can now update upon props change; and can be configured to inject into all frames. ([#1119](https://github.com/react-native-community/react-native-webview/issues/1119)) ([9cb2f6e](https://github.com/react-native-community/react-native-webview/commit/9cb2f6e)), 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)

### BREAKING CHANGES

* **iOS:** • Props updates to `injectedJavaScript` are no longer immutable.
2020-03-17 21:06:06 +00:00
Jamie Birch 9cb2f6e2f3
feat(iOS): WKUserScripts (e.g. injectedJavaScript) can now update upon props change; and can be configured to inject into all frames. (#1119)
BREAKING CHANGE: 
• Props updates to `injectedJavaScript` are no longer immutable.

• `injectedJavaScript` no longer attaches a `jsEvaluationValue` property to the `onLoadingFinish` event. Check out: https://github.com/react-native-community/react-native-webview/pull/1119#issuecomment-574919464 to migrate with the same behavior.
2020-03-17 14:01:20 -07:00
semantic-release-bot e9ad1df51e chore(release): 8.2.1 [skip ci]
## [8.2.1](https://github.com/react-native-community/react-native-webview/compare/v8.2.0...v8.2.1) (2020-03-17)

### Bug Fixes

* **deps:** Update React Native Windows version to ^0.61.0-beta.58 ([#1256](https://github.com/react-native-community/react-native-webview/issues/1256)) ([91064ab](https://github.com/react-native-community/react-native-webview/commit/91064ab))
2020-03-17 20:04:30 +00:00
Kai Guo 91064ab4a9
fix(deps): Update React Native Windows version to ^0.61.0-beta.58 (#1256) 2020-03-17 13:00:44 -07:00
semantic-release-bot 5f7f4a19f2 chore(release): 8.2.0 [skip ci]
# [8.2.0](https://github.com/react-native-community/react-native-webview/compare/v8.1.2...v8.2.0) (2020-03-17)

### Features

* **Windows:** Windows support! ([#1220](https://github.com/react-native-community/react-native-webview/issues/1220)) ([ffee0d4](https://github.com/react-native-community/react-native-webview/commit/ffee0d4))
2020-03-17 02:32:43 +00:00
Kai Guo ffee0d4362
feat(Windows): Windows support! (#1220) 2020-03-16 19:30:25 -07:00
Luciano Lima 86c44588f8
chore(docs): Update React Native links to reactnative.dev (#1233) 2020-02-25 22:54:06 -08:00
semantic-release-bot 19896fc810 chore(release): 8.1.2 [skip ci]
## [8.1.2](https://github.com/react-native-community/react-native-webview/compare/v8.1.1...v8.1.2) (2020-02-21)

### Bug Fixes

* **Android:** Don't log the cookie when downloading file. ([#1224](https://github.com/react-native-community/react-native-webview/issues/1224)) ([2470245](https://github.com/react-native-community/react-native-webview/commit/2470245))
2020-02-21 19:05:47 +00:00
trcoffman 24702450f3
fix(Android): Don't log the cookie when downloading file. (#1224) 2020-02-21 11:02:50 -08:00
semantic-release-bot 118663287a chore(release): 8.1.1 [skip ci]
## [8.1.1](https://github.com/react-native-community/react-native-webview/compare/v8.1.0...v8.1.1) (2020-02-19)

### Bug Fixes

* **Android:** Don't show camera options for a file upload when they can not be used ([#1210](https://github.com/react-native-community/react-native-webview/issues/1210)) ([4093682](https://github.com/react-native-community/react-native-webview/commit/4093682))
2020-02-19 02:42:47 +00:00
Daniel Vicory 4093682e08
fix(Android): Don't show camera options for a file upload when they can not be used (#1210)
* Don't show camera options for a file upload that would result in nothing happening for the user.

On Android, if the application declares the camera permission, then even intents
that use the camera require permission to be granted. This is a problem for apps
that combine an in-app camera with a WebView that has file uploading and the user
has not given permission for the camera.

Note, this will not request permission for camera. This will simply prevent
showing the camera options that would be a no-op action for users. It does this
by checking if the camera permission is declared, and if so, checks that the
user has granted permission.

More information: https://blog.egorand.me/taking-photos-not-so-simply-how-i-got-bitten-by-action_image_capture/

* Add example and documentation about camera option availability in file uploads for Android.
2020-02-18 18:40:30 -08:00
Allan Santos 5024295633
chore(docs): Fix Getting Started Guide link in Breaking History (#1213) 2020-02-17 09:35:05 -08:00
António Goulão 6c8b8fc4b1
chore(docs): Update Android assets path (#1173) 2020-02-14 11:12:19 -08:00
Jason Safaiyeh 327bc6b7de
chore(docs): Update cookie links (#1149) 2020-02-13 05:50:22 -08:00
Dulmandakh e6241cbb6a
chore(Android): Convert RNCWebViewPackage to Kotlin (#1194)
* RN is implementation dependency

* renamed:    RNCWebViewPackage.java -> RNCWebViewPackage.kt

* migrate RNCWebViewPackage to Kotlin

Co-authored-by: Jason Safaiyeh <safaiyeh@protonmail.com>
2020-02-12 17:12:24 -08:00
semantic-release-bot f65783d348 chore(release): 8.1.0 [skip ci]
# [8.1.0](https://github.com/react-native-community/react-native-webview/compare/v8.0.6...v8.1.0) (2020-02-12)

### Features

* **macOS:** macOS Support ([#1164](https://github.com/react-native-community/react-native-webview/issues/1164)) ([1e57231](https://github.com/react-native-community/react-native-webview/commit/1e57231))
2020-02-12 23:41:15 +00:00
Tom Underhill 1e572318ec
feat(macOS): macOS Support (#1164) 2020-02-12 15:39:11 -08:00
semantic-release-bot 31d015badf chore(release): 8.0.6 [skip ci]
## [8.0.6](https://github.com/react-native-community/react-native-webview/compare/v8.0.5...v8.0.6) (2020-01-30)

### Bug Fixes

* **Android:** Revert "Redirected URLs now redirect correctly. ([#991](https://github.com/react-native-community/react-native-webview/issues/991))" ([#1177](https://github.com/react-native-community/react-native-webview/issues/1177)) ([344aab5](https://github.com/react-native-community/react-native-webview/commit/344aab5))
2020-01-30 03:21:31 +00:00
Daniel Vicory 344aab591a
fix(Android): Revert "Redirected URLs now redirect correctly. (#991)" (#1177)
This reverts commit acf1ad7560.
2020-01-29 19:18:35 -08:00
semantic-release-bot d4efa1e7f5 chore(release): 8.0.5 [skip ci]
## [8.0.5](https://github.com/react-native-community/react-native-webview/compare/v8.0.4...v8.0.5) (2020-01-26)

### Bug Fixes

* **Android:** Redirected URLs now redirect correctly. ([#991](https://github.com/react-native-community/react-native-webview/issues/991)) ([acf1ad7](https://github.com/react-native-community/react-native-webview/commit/acf1ad7))
2020-01-26 08:27:01 +00:00
hanlh1 acf1ad7560 fix(Android): Redirected URLs now redirect correctly. (#991)
Co-authored-by: Jamon Holmgren <jamon@infinite.red>
Co-authored-by: Jason Safaiyeh <safaiyeh@protonmail.com>
2020-01-26 00:25:24 -08:00
Tom Underhill bf1d645716 chore(example): Added three test examples: Alerts, Scrolling, and Background. 2020-01-21 11:39:40 -08:00
semantic-release-bot a466c0f62d chore(release): 8.0.4 [skip ci]
## [8.0.4](https://github.com/react-native-community/react-native-webview/compare/v8.0.3...v8.0.4) (2020-01-20)

### Bug Fixes

* **iOS:** Meta method 'UIScrollViewContentInsetAdjustmentBehavior:' conflict warning ([e6edc6d](https://github.com/react-native-community/react-native-webview/commit/e6edc6d)), 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)
2020-01-20 04:10:24 +00:00
Tommy Nguyen e6edc6dc73 fix(iOS): Meta method 'UIScrollViewContentInsetAdjustmentBehavior:' conflict warning
This converter is already defined in
[RCTScrollViewManager.m](https://github.com/facebook/react-native/blob/master/React/Views/ScrollView/RCTScrollViewManager.m#L40).

Redefining it in react-native-webview can cause undefined behaviour when
used. Since ScrollView is unlikely to go away, we can take a dependency on it.

All current tests should pass.

When building a React Native app with `react-native-webview`, the following
warning can be seen in the build logs:

```
Meta method 'UIScrollViewContentInsetAdjustmentBehavior:' in category from /~/Library/Developer/Xcode/DerivedData/App-geojljebaazfrrgvxfkjjpiwmdlg/Build/Products/Debug-iphonesimulator/React-Core/libReact-Core.a(RCTScrollViewManager.o) conflicts with same method from another category
```

The warning should go away after removing the offending function.

Co-authored-by: Jason Safaiyeh <safaiyeh@protonmail.com>
2020-01-19 20:07:35 -08:00
Jesse Katsumata 3a9218031f chore(example): Added example app 2020-01-16 14:49:10 -08:00
Jamie Birch 5e8b4d5c2b chore(iOS): Extract wkWebViewConfig setup to setUpWkWebViewConfig function 2020-01-07 22:27:53 -08:00
semantic-release-bot f0cb28ff9a chore(release): 8.0.3 [skip ci]
## [8.0.3](https://github.com/react-native-community/react-native-webview/compare/v8.0.2...v8.0.3) (2020-01-08)

### Bug Fixes

* **whitelisted origins:** Prevent handling of un-whitelisted URLs ([0442126](https://github.com/react-native-community/react-native-webview/commit/0442126))
2020-01-08 01:21:14 +00:00
aarondail 0442126595 fix(whitelisted origins): Prevent handling of un-whitelisted URLs
* Preventing an unhandled promise rejection when: a URL is loaded by the WebView, but the URL isn't in the origin whitelist, so it is handed off to the OS to handle by calling Linking.openURL(), but Linking.openURL has an error.  The code wasn't catching the error, so this would result in an unhandled promise rejection. Now the error is being caught.

* Fixing a problem where a URL is handled to the OS to deal with, via Linking.openURL, and also loaded in the WebView by making those cases mutually exclusive (they weren't previously).  In more detail: when a URL is loaded by the WebView that isn't in the origin whitelist it is handled off to the OS to handle by calling Linking.openURL.  But, if the onShouldStartLoadWithRequest prop is set, then that function would also be called, and then that would determine whether the URL should be loaded.  This can result in a situation where the URL is passed to Linking.openURL and onShouldStartLoadWithRequest returns true so it is also loaded in the WebView.  The client can fix this by duplicating the origin whitelist logic in their onShouldStartLoadWithRequest of course, but this change makes it so they don't have to.

Co-authored-by: Jason Safaiyeh <safaiyeh@protonmail.com>
2020-01-07 17:18:43 -08:00
Jesse Katsumata 13ae8c9661 chore(README): Lean Core badge
* docs: add Lean core badge

* docs: adjust badge style
2020-01-06 17:34:15 -08:00
dependabot[bot] 07a87131dc chore(deps): bump npm from 6.11.3 to 6.13.4 (#1079)
Bumps [npm](https://github.com/npm/cli) from 6.11.3 to 6.13.4.
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v6.11.3...v6.13.4)

Signed-off-by: dependabot[bot] <support@github.com>
2019-12-27 11:54:35 +01:00
semantic-release-bot c4f8a74763 chore(release): 8.0.2 [skip ci]
## [8.0.2](https://github.com/react-native-community/react-native-webview/compare/v8.0.1...v8.0.2) (2019-12-27)

### Bug Fixes

* **iOS:** WKWebView RetainCycle ([#1096](https://github.com/react-native-community/react-native-webview/issues/1096)) ([4f4644f](https://github.com/react-native-community/react-native-webview/commit/4f4644f))
2019-12-27 10:42:43 +00:00
Jason Safaiyeh 8a9836c703 chore(docs): Add 8.0.0 to Breaking History on README (#1085) 2019-12-27 11:40:37 +01:00
sunzhongliang 4f4644ffd8 fix(iOS): WKWebView RetainCycle (#1096) 2019-12-27 11:39:53 +01:00
semantic-release-bot 7ba1bc5129 chore(release): 8.0.1 [skip ci]
## [8.0.1](https://github.com/react-native-community/react-native-webview/compare/v8.0.0...v8.0.1) (2019-12-17)

### Bug Fixes

* **iOS:** Ignore WebKitDomainError 101 ([#961](https://github.com/react-native-community/react-native-webview/issues/961)) ([adb5608](https://github.com/react-native-community/react-native-webview/commit/adb5608))
2019-12-17 09:57:33 +00:00
Ben Wildeman adb5608116 fix(iOS): Ignore WebKitDomainError 101 (#961) 2019-12-17 10:55:26 +01:00
semantic-release-bot ce565f4832 chore(release): 8.0.0 [skip ci]
# [8.0.0](https://github.com/react-native-community/react-native-webview/compare/v7.6.0...v8.0.0) (2019-12-16)

### Features

* **ios:** Generate history API events on iOS ([#1082](https://github.com/react-native-community/react-native-webview/issues/1082)) ([3615296](https://github.com/react-native-community/react-native-webview/commit/3615296))

### BREAKING CHANGES

* **ios:** if you use onNavigationStateChange on iOS it will now trigger on # changes to the url.

* Hook the `window.history` API on iOS to generate events

The underlying WKWebView doesn't seem to generate any events in response to the `window.history` API - none of the `WKNavigationDelegate` methods fire.

Given this limitation, the only way to know when the location changes via this API is to inject Javascript into the page and have it notify the native code directly when any of these functions are called.

The `setTimeout` call gives up the current tick, allowing the location to change before firing the event.

* Remove the outdated section about hash changes

Now that this bug is fixed, the workaround is no longer required.
2019-12-16 16:55:26 +00:00
Jason Safaiyeh 361529630f feat(ios): Generate history API events on iOS (#1082)
BREAKING CHANGE: if you use onNavigationStateChange on iOS it will now trigger on # changes to the url.

* Hook the `window.history` API on iOS to generate events

The underlying WKWebView doesn't seem to generate any events in response to the `window.history` API - none of the `WKNavigationDelegate` methods fire.

Given this limitation, the only way to know when the location changes via this API is to inject Javascript into the page and have it notify the native code directly when any of these functions are called.

The `setTimeout` call gives up the current tick, allowing the location to change before firing the event.

* Remove the outdated section about hash changes

Now that this bug is fixed, the workaround is no longer required.
2019-12-16 17:52:54 +01:00
semantic-release-bot c4001338c1 chore(release): 7.6.0 [skip ci]
# [7.6.0](https://github.com/react-native-community/react-native-webview/compare/v7.5.2...v7.6.0) (2019-12-06)

### Bug Fixes

* **ios:** Make allowFileAccessFromFileURLs work in iOS. ([#1061](https://github.com/react-native-community/react-native-webview/issues/1061)) ([88b6498](https://github.com/react-native-community/react-native-webview/commit/88b6498))

### Features

* **iOS:** new prop injectedJavaScriptBeforeContentLoaded ([#1038](https://github.com/react-native-community/react-native-webview/issues/1038)) ([604495e](https://github.com/react-native-community/react-native-webview/commit/604495e))
2019-12-06 10:19:05 +00:00
StasD 88b64981f4 fix(ios): Make allowFileAccessFromFileURLs work in iOS. (#1061) 2019-12-06 11:16:56 +01:00