Socket
Socket
Sign inDemoInstall

react-native-webview

Package Overview
Dependencies
541
Maintainers
4
Versions
318
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    react-native-webview

React Native WebView component for iOS, Android, and Windows 10 (coming soon)


Version published
Weekly downloads
717K
increased by0.55%
Maintainers
4
Install size
2.85 MB
Created
Weekly downloads
 

Package description

What is react-native-webview?

The react-native-webview package is a powerful tool for embedding web content into a React Native application. It allows developers to render web pages, handle navigation, and interact with web content using JavaScript. This package is highly customizable and supports various features such as injecting JavaScript, handling navigation events, and more.

What are react-native-webview's main functionalities?

Basic WebView

This feature allows you to embed a basic web page within your React Native application. The WebView component takes a source prop that specifies the URL of the web page to be loaded.

import React from 'react';
import { WebView } from 'react-native-webview';

const MyWebView = () => (
  <WebView
    source={{ uri: 'https://www.example.com' }}
    style={{ marginTop: 20 }}
  />
);

export default MyWebView;

Injecting JavaScript

This feature allows you to inject JavaScript into the web page being loaded. The injectedJavaScript prop takes a string of JavaScript code that will be executed once the page has loaded.

import React from 'react';
import { WebView } from 'react-native-webview';

const MyWebView = () => (
  <WebView
    source={{ uri: 'https://www.example.com' }}
    injectedJavaScript={"document.body.style.backgroundColor = 'red';"}
    style={{ marginTop: 20 }}
  />
);

export default MyWebView;

Handling Navigation Events

This feature allows you to handle navigation events within the WebView. The onNavigationStateChange prop takes a function that will be called whenever the navigation state changes, providing details about the navigation event.

import React from 'react';
import { WebView } from 'react-native-webview';

const MyWebView = () => (
  <WebView
    source={{ uri: 'https://www.example.com' }}
    onNavigationStateChange={(navState) => {
      console.log('Navigation state changed:', navState);
    }}
    style={{ marginTop: 20 }}
  />
);

export default MyWebView;

Other packages similar to react-native-webview

Readme

Source

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

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).

Platforms Supported

  • iOS (both UIWebView and WKWebView)
  • Android
  • Windows 10 (coming soon)

Versioning

If you need the exact same WebView as the one from react-native, please use version 2.0.0. Future versions will follow semantic versioning.

Getting Started

$ yarn add react-native-webview
$ react-native link react-native-webview

Read our Getting Started Guide for more.

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://infinite.red/react-native' }}
        style={{ marginTop: 20 }}
        onLoadProgress={e=>console.log(e.nativeEvent.progress)}
      />
    );
  }
}

For more, read the API Reference and Guide.

Migrate from React Native core WebView to React Native WebView

Simply install React Native WebView and then use it in place of the core WebView. Their APIs are currently identical, except that this package defaults useWebKit={true} unlike the built-in WebView.

Contributor Notes

  • I've removed all PropTypes for now. Instead, we'll be using Flow types. TypeScript types will be added at a later date.
  • UIWebView is not tested fully and you will encounter some yellow warning boxes. Since it is deprecated, we don't intend to put a lot of time into supporting it, but feel free to submit PRs if you have a special use case. Note that you will need to specify useWebKit={false} to use UIWebView
  • After pulling this repo and installing all dependencies, you can run flow on iOS and Android-specific files using the commands:
    • yarn test:ios:flow for iOS
    • yarn test:android:flow for Android
  • If you want to add another React Native platform to this repository, you will need to create another .flowconfig for it. If your platform is example, copy the main flowconfig and rename it to .flowconfig.example. Then edit the config to ignore other platforms, and add .*/*[.]example.js to the ignore lists of the other platforms. Then add an entry to package.json like this:
    • "test:example:flow": "flow check --flowconfig-name .flowconfig.example"
  • Currently you need to install React Native 0.57 to be able to test these types - flow check will not pass against 0.56.

Maintainers

License

MIT

FAQs

Last updated on 18 Oct 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc