Go to file
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
.circleci fix(deps): updated dependancies and types (#847) 2019-09-19 11:40:51 +02:00
.github chore(buildtools): enable --frozen-lockfile yarn flag (#1005) 2019-11-13 10:58:27 +01:00
.vscode feat(typescript): Source code rewrite using typescript (#425) 2019-03-20 12:35:13 +00:00
android fix(build): Android build errors when using Gradle 6.0 (#1037) 2019-11-26 10:41:16 +01:00
bin Added starter setup script 2018-08-15 21:09:05 -07:00
docs feat(ios): Generate history API events on iOS (#1082) 2019-12-16 17:52:54 +01:00
ios feat(ios): Generate history API events on iOS (#1082) 2019-12-16 17:52:54 +01:00
src feat(iOS): new prop injectedJavaScriptBeforeContentLoaded (#1038) 2019-12-06 11:15:02 +01:00
.all-contributorsrc chore(docs): add dvicory as a contributor (#576) 2019-05-17 09:28:05 +02:00
.eslintignore feat(android): fix overflow issues and match iOS default renders (#472) 2019-04-02 16:05:56 +02:00
.eslintrc.js fix(deps): updated dependancies and types (#847) 2019-09-19 11:40:51 +02:00
.flowconfig Add WebView Flow types 2018-09-10 18:46:07 -06:00
.flowconfig.android Add WebView Flow types 2018-09-10 18:46:07 -06:00
.gitignore feat(typescript): Source code rewrite using typescript (#425) 2019-03-20 12:35:13 +00:00
.prettierrc.js feat(typescript): Source code rewrite using typescript (#425) 2019-03-20 12:35:13 +00:00
.releaserc fix(semantic-release): Use git plugin to auto commit 2018-10-18 11:37:43 +02:00
LICENSE WIP: iOS WKWebView 2018-09-08 10:42:02 -07:00
README.md chore(docs): README.md translated into Brazilian portugues (#980) 2019-11-12 09:48:24 +01:00
babel.config.js feat(android): fix overflow issues and match iOS default renders (#472) 2019-04-02 16:05:56 +02:00
index.d.ts fix(types): Export WebViewMessageEvent, WebViewNavigation for external use (#855) 2019-09-09 16:53:35 +02:00
index.js feat(typescript): Source code rewrite using typescript (#425) 2019-03-20 12:35:13 +00:00
jest.config.js feat(android): fix overflow issues and match iOS default renders (#472) 2019-04-02 16:05:56 +02:00
package.json chore(release): 8.0.0 [skip ci] 2019-12-16 16:55:26 +00:00
react-native-webview.podspec chore(podspec): Podspec source format fix (#681) 2019-07-02 16:58:50 +02:00
tsconfig.json feat(typescript): Source code rewrite using typescript (#425) 2019-03-20 12:35:13 +00:00
yarn.lock fix(deps): updated dependancies and types (#847) 2019-09-19 11:40:51 +02:00

README.md

React Native WebView - a Modern, Cross-Platform WebView for React Native

star this repo PRs Welcome All Contributors Known Vulnerabilities

React Native WebView is a modern, well-supported, and cross-platform WebView for React Native. It is intended to be a replacement for the built-in WebView (which will be removed from core).

Core Maintainers - Sponsoring companies

This project is maintained for free by these people using both their free time and their company work time.

Platforms Supported

  • iOS
  • Android

Note: Expo support for React Native WebView started with Expo SDK v33.0.0.

Getting Started

Read our Getting Started Guide. If any step seems unclear, please create a detailed issue.

Versioning

This project follows semantic versioning. We do not hesitate to release breaking changes but they will be in a major version.

Breaking History:

Current Version: version

  • 7.0.1 - Removed UIWebView

  • 6.0.2 - Update to AndroidX. Make sure to enable it in your project's android/gradle.properties. See Getting Started Guide.

  • 5.0.1 - Refactored the old postMessage implementation for communication from webview to native.

  • 4.0.0 - Added cache (enabled by default).

  • 3.0.0 - WKWebview: Add shared process pool so cookies and localStorage are shared across webviews in iOS (enabled by default).

  • 2.0.0 - First release this is a replica of the core webview component

Upcoming:

  • this.webView.postMessage() removal (never documented and less flexible than injectJavascript) -> how to migrate
  • Kotlin rewrite
  • Maybe Swift rewrite

Usage

Import the WebView component from react-native-webview and use it like so:

import React, { Component } from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { WebView } from 'react-native-webview';

// ...
class MyWebComponent extends Component {
  render() {
    return (
      <WebView source={{ uri: 'https://facebook.github.io/react-native/' }} />
    );
  }
}

For more, read the API Reference and Guide. If you're interested in contributing, check out the Contributing Guide.

Common issues

  • If you're getting Invariant Violation: Native component for "RNCWebView does not exist" it likely means you forgot to run react-native link or there was some error with the linking process

Contributing

See Contributing.md

Contributors

Thanks goes to these wonderful people (emoji key):

Thibault Malbranche
Thibault Malbranche

💻 🤔 👀 📖 🚧 ⚠️ 🚇 💬
Jamon Holmgren
Jamon Holmgren

💻 🤔 👀 📖 🚧 ⚠️ 💡 💬
Andrei Pfeiffer
Andrei Pfeiffer

💻 👀 🤔
Michael Diarmid
Michael Diarmid

💻 👀 🤔 🔧
Scott Mathson
Scott Mathson

💻 📖
Margaret
Margaret

💻 📖
Jordan Sexton
Jordan Sexton

💻 📖
Malcolm Scruggs
Malcolm Scruggs

💻 🔧 ⚠️
Momazo7u7
Momazo7u7

📖
Marco
Marco

📖
Julien Eluard
Julien Eluard

📖
Jian Wei
Jian Wei

💻 📖
Sergei Butko
Sergei Butko

📖
TMomemt
TMomemt

💻
Eric Lewis
Eric Lewis

💻 📖
Daniel Vicory
Daniel Vicory

💻 📖

This project follows the all-contributors specification. Contributions of any kind welcome!

License

MIT

Traduções

This readme is available in: