npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-webview-local

v2.0.0

Published

React Native WebView local component for iOS, Android to load local webresources from local app package

Downloads

3

Readme

React Native WebView local - a Modern, Cross-Platform WebView for React Native to render web resources from local package

star this repo PRs Welcome All Contributors Known Vulnerabilities

React Native WebView local 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).

I have just fork this plugin from react-native-webview We just swapped out the React Native WebView in our app with the version from React Native Community. The swap took less than a day, required almost no code modifications, and is faster and CSS works better. Props to everyone in the community (including those at Infinite Red) that helped get that component split out.

Garrett McCullough, mobile engineer at Virta Health

Platforms Supported

  • [x] iOS (WKWebView)
  • [x] Android
  • [ ] Windows 10 (coming soon)

Note: React Native WebView is not currently supported by Expo unless you "eject".

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-local and use it to load webpackage from local resources.

Please put the webpackage (create a folder 'web' with 'www' folder and inside 'www' folder add 'js', 'css' & 'html' files please note all js and css file should have relative path inorder to work) keep this along side with src folder.

for android if you don't want to copy manually simpley add below line of code below dependencies{...} to your app/build.gradle file

task copyReactNativeHTML(type: Copy) {

from '../../web/' // It’ll copy the contents of web inside 'src/main/assets'
into 'src/main/assets'

}

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

// ...
class MyWebComponent extends Component {
  render() {
    return (
      <WebView
        source={{ uri: (Platform.OS == "android" ? "file:///android_asset/www/index.html" : "./web/www/index.html") }}
        style={{ marginTop: 20 }}
        onLoadProgress={e => console.log(e.nativeEvent.progress)}
      />
    );
  }
}

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-local";
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. If you're interested in contributing, check out the Contributing 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.

Troubleshooting

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

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

Contributors

Thanks goes to these wonderful people (emoji key):

| Thibault Malbranche💻 🤔 👀 📖 🚧 ⚠️ 🚇 💬 | Jamon Holmgren💻 🤔 👀 📖 🚧 ⚠️ 💡 💬 | Andrei Pfeiffer💻 👀 🤔 | Michael Diarmid💻 👀 🤔 🔧 | Scott Mathson💻 📖 | Margaret💻 📖 | | :---: | :---: | :---: | :---: | :---: | :---: |

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

License

MIT