쉽게 말해서 이미 존재하는 웹 페이지를 앱으로 옮기는 것이다.
WebView를 사용하기 위해서는 WebView를 import해주어야한다.
원래는 리액트 네이티브 core에 있었지만, 리액트 네이티브가 core에서 빼버렸기 때문에 설치를 해주어야한다.
프로젝트 디렉토리로 가서 아래의 명령어 두 가지를 실행시켜주면 제대로 설치된다.
npm install --save react-native-webview
react-native link react-native-webview
기존 core에 있을때는 import {WebView} from 'react-native';
로 import 해주었지만, 지금은 import { WebView } from 'react-native-webview';
밑의 코드로 import 해주어야한다.
WebView는 uri로 웹페이지를 연결할 수도 있고, inline HTML을 이용하여 생성할 수도 있다.
//uri 사용
import React, {Component} from 'react';
import { WebView } from 'react-native-webview';
class MyWeb extends Component {
render() {
return (
<WebView
source={{uri: 'https://github.com/facebook/react-native'}}
style={{marginTop: 20}}
/>
);
}
}
// inline HTML 사용
import React, {Component} from 'react';
import { WebView } from 'react-native-webview';
class MyInlineWeb extends Component {
render() {
return (
<WebView
originWhitelist={['*']}
source={{html: '<h1>Hello world</h1>'}}
/>
);
}
}
WebView 컴포넌트는 기존에 가지고 있는 Props들이 있다. 몇 가지 Props를 알아보겠다.
window.postMessage
를 call하면 호출되는 것