Go to file
Scott Batson e1fc730eed
Allow custom menu items for selection menu (#2101)
remove unused vars

use gesture handler

change callback name, pass selected text back

do not use deprecate setTarget

do not call super on methodSignatureForSelector twice

add checks for custom menu items and callback

make custom params optional

add custom menu items outside of initWithFrame

require key and label for menuItems

fix typo
2021-10-08 08:38:43 +02:00
.circleci fix(ci): Upgrade to node 14 2021-09-27 16:45:42 +02: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 feat(auth): Basic Authentication Support (#1467) 2021-09-30 18:03:34 +02:00
apple Allow custom menu items for selection menu (#2101) 2021-10-08 08:38:43 +02:00
bin chore(docs): Update React Native links to reactnative.dev (#1233) 2020-02-25 22:54:06 -08:00
docs Allow custom menu items for selection menu (#2101) 2021-10-08 08:38:43 +02:00
example fix(jcenter): remove jcenter (#2178) 2021-09-27 13:50:52 +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
macos/RNCWebView.xcodeproj feat(macOS): Make podspec compatible with macOS (#1328) 2020-04-24 19:54:17 +02:00
src Allow custom menu items for selection menu (#2101) 2021-10-08 08:38:43 +02:00
windows fix(windows): Navigation to ms-appdata and ms-appx-web local file request (#2098) 2021-08-05 01:05:41 -07: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
.flowconfig.android
.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 chore(windows): Set up Windows CI (#1358 by @kaiguo) 2020-05-08 13:24:37 -07:00
.prettierrc.js feat(typescript): Source code rewrite using typescript (#425) 2019-03-20 12:35:13 +00:00
.releaserc
LICENSE
README.md Add Alex and Chiara as Maintainers (#1991) 2021-05-18 15:08:55 -07: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): Remove references to nonexistent extraNativeComponentConfig prop (#1958) 2021-05-21 00:11:12 +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 fix(autolink-windows): enable autolinking on Windows 2021-04-26 08:40:20 -07:00
metro.config.macos.js feat(macOS): macOS Support (#1164) 2020-02-12 15:39:11 -08:00
metro.config.windows.js fix(autolink-windows): enable autolinking on Windows 2021-04-26 08:40:20 -07:00
package.json chore(release): 11.14.0 [skip ci] 2021-09-30 16:06:34 +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 fix(windows): react-native.config for non windows platforms (#2046) 2021-06-10 21:17:57 -07:00
tsconfig.json feat(typescript): Source code rewrite using typescript (#425) 2019-03-20 12:35:13 +00:00
yarn.lock fix(jcenter): remove jcenter (#2178) 2021-09-27 13:50:52 +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: