Skip to content

Commit 7bccf74

Browse files
committed
Initial commit
0 parents  commit 7bccf74

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+12044
-0
lines changed

.idea/inspectionProfiles/profiles_settings.xml

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/react-native-webview-crossplatform.iml

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2015-present, Facebook, Inc.
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# React Native WebView - a Modern, Cross-Platform WebView for React Native
2+
3+
**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](https://github.com/react-native-community/discussions-and-proposals/pull/3)).
4+
5+
## Platforms Supported
6+
7+
- [x] iOS (both UIWebView and WKWebView)
8+
- [x] Android
9+
- [ ] Windows 10 (coming soon)
10+
11+
## Versioning
12+
13+
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](https://semver.org/).
14+
15+
## Getting Started
16+
17+
```
18+
$ yarn add react-native-webview
19+
$ react-native link react-native-webview
20+
```
21+
22+
Read our [Getting Started Guide](./docs/Getting-Started.md) for more.
23+
24+
## Usage
25+
26+
Import the `WebView` component from `react-native-webview` and use it like so:
27+
28+
```jsx
29+
import React, { Component } from 'react';
30+
import { StyleSheet, Text, View } from 'react-native';
31+
import { WebView } from 'react-native-webview';
32+
33+
// ...
34+
class MyWebComponent extends Component {
35+
render() {
36+
return (
37+
<WebView
38+
source={{ uri: 'https://infinite.red/react-native' }}
39+
style={{ marginTop: 20 }}
40+
onLoadProgress={e=>console.log(e.nativeEvent.progress)}
41+
/>
42+
);
43+
}
44+
}
45+
```
46+
47+
For more, read the [API Reference](./docs/Reference.md) and [Guide](./docs/Guide.md).
48+
49+
## Migrate from React Native core WebView to React Native WebView
50+
51+
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.
52+
53+
### Contributor Notes
54+
55+
- I've removed all PropTypes for now. Instead, we'll be using Flow types. TypeScript types will be added at a later date.
56+
- 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
57+
- After pulling this repo and installing all dependencies, you can run flow on iOS and Android-specific files using the commands:
58+
- `yarn test:ios:flow` for iOS
59+
- `yarn test:android:flow` for Android
60+
- 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:
61+
- `"test:example:flow": "flow check --flowconfig-name .flowconfig.example"`
62+
- Currently you need to install React Native 0.57 to be able to test these types - `flow check` will not pass against 0.56.
63+
64+
## Maintainers
65+
66+
- [Jamon Holmgren](https://github.com/jamonholmgren) ([Twitter @jamonholmgren](https://twitter.com/jamonholmgren)) from [Infinite Red](https://infinite.red/react-native)
67+
- [Thibault Malbranche](https://github.com/Titozzz) ([Twitter @titozzz](https://twitter.com/titozzz)) from [Brigad](https://brigad.co/about)
68+
69+
## License
70+
71+
MIT

android/build.gradle

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
apply plugin: 'com.android.library'
2+
3+
def DEFAULT_COMPILE_SDK_VERSION = 27
4+
def DEFAULT_BUILD_TOOLS_VERSION = "27.0.3"
5+
def DEFAULT_MIN_SDK_VERSION = 16
6+
def DEFAULT_TARGET_SDK_VERSION = 26
7+
8+
android {
9+
compileSdkVersion rootProject.findProperty('compileSdkVersion') ?: DEFAULT_COMPILE_SDK_VERSION
10+
buildToolsVersion rootProject.findProperty('buildToolsVersion') ?: DEFAULT_BUILD_TOOLS_VERSION
11+
12+
defaultConfig {
13+
minSdkVersion rootProject.findProperty('minSdkVersion') ?: DEFAULT_MIN_SDK_VERSION
14+
targetSdkVersion rootProject.findProperty('targetSdkVersion') ?: DEFAULT_TARGET_SDK_VERSION
15+
versionCode 1
16+
versionName "1.0"
17+
}
18+
}
19+
20+
dependencies {
21+
implementation 'com.facebook.react:react-native:+'
22+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.reactnativecommunity.webview">
2+
</manifest>

0 commit comments

Comments
 (0)