Go to file
Roman Volosovskyi e25bf4d619
Don't allow camera and mic permissions by default.
Notify user about permission request
2021-04-15 08:42:05 +02:00
.circleci chore(windows): Set up Windows CI (#1358 by @kaiguo) 2020-05-08 13:24:37 -07:00
.github feat(windows): Add POST requests, fixes Windows CI issues, and other QOL (#1926) 2021-04-14 01:40:49 +02:00
.vscode feat(typescript): Source code rewrite using typescript (#425) 2019-03-20 12:35:13 +00:00
__tests__ feat(windows): Add POST requests, fixes Windows CI issues, and other QOL (#1926) 2021-04-14 01:40:49 +02:00
android Don't allow camera and mic permissions by default. 2021-04-15 08:42:05 +02:00
apple feat(ios): Add support for `limitsNavigationsToAppBoundDomains` (#1662) 2021-03-17 00:29:40 +01:00
bin chore(docs): Update React Native links to reactnative.dev (#1233) 2020-02-25 22:54:06 -08:00
docs feat(windows): Add POST requests, fixes Windows CI issues, and other QOL (#1926) 2021-04-14 01:40:49 +02:00
example Don't allow camera and mic permissions by default. 2021-04-15 08:42:05 +02:00
ios/RNCWebView.xcodeproj feat(macOS): Make podspec compatible with macOS (#1328) 2020-04-24 19:54:17 +02:00
jest-setups feat(windows): Add POST requests, fixes Windows CI issues, and other QOL (#1926) 2021-04-14 01:40:49 +02:00
lib Don't allow camera and mic permissions by default. 2021-04-15 08:42:05 +02:00
macos/RNCWebView.xcodeproj feat(macOS): Make podspec compatible with macOS (#1328) 2020-04-24 19:54:17 +02:00
src Don't allow camera and mic permissions by default. 2021-04-15 08:42:05 +02:00
windows feat(windows): Add POST requests, fixes Windows CI issues, and other QOL (#1926) 2021-04-14 01:40:49 +02:00
.all-contributorsrc chore(docs): update repo references with new repo location (#1657) 2021-01-20 18:49:11 +01: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
.gitattributes chore(windows): Add a .gitattributes to fix line endings across myriad files. (#1431 by @trcoffman) 2020-06-16 11:53:22 -07:00
.gitignore Don't allow camera and mic permissions by default. 2021-04-15 08:42:05 +02: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): Add multiDex error to the common issues section (#1921) 2021-03-17 23:23:57 +01:00
babel.config.js chore(example): Added three test examples: Alerts, Scrolling, and Background. 2020-01-21 11:39:40 -08:00
index.d.ts Fix(types): Update Typescript definition file, declaring WebView class as a generic class (#1604) 2020-09-05 13:19:50 +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
metro.config.js feat(macOS): macOS Support (#1164) 2020-02-12 15:39:11 -08:00
metro.config.macos.js feat(macOS): macOS Support (#1164) 2020-02-12 15:39:11 -08:00
metro.config.windows.js chore(ci): Cleanup windows ci (#1558) 2020-08-13 23:43:23 -07:00
package.json chore(release): 11.4.0 [skip ci] 2021-04-13 23:44:21 +00:00
react-native-webview.podspec chore(docs): update repo references with new repo location (#1657) 2021-01-20 18:49:11 +01:00
react-native.config.js feat(compatibility): Support React Native 0.62 (#1364 by @jussikinnula and @kaiguo) 2020-05-26 20:55:02 -07:00
tsconfig.json feat(typescript): Source code rewrite using typescript (#425) 2019-03-20 12:35:13 +00:00
yarn.lock feat(windows): Add POST requests, fixes Windows CI issues, and other QOL (#1926) 2021-04-14 01:40:49 +02:00

README.md

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

star this repo PRs Welcome All Contributors Known Vulnerabilities NPM Version Lean Core Extracted

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
  • macOS
  • Windows

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

  • 11.0.0 - Android setSupportMultipleWindows.
  • 10.0.0 - Android Gradle plugin is only required when opening the project stand-alone
  • 9.0.0 - props updates to injectedJavaScript are no longer immutable.
  • 8.0.0 - onNavigationStateChange now triggers with hash url changes
  • 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://reactnative.dev/' }} />;
  }
}

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
  • If you encounter a build error during the task :app:mergeDexRelease, you need to enable multidex support in android/app/build.gradle as discussed in this issue

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

Translations

This readme is available in: