React Native 로 local html을 webview 에 적용하기
리액트네이티브에 웹뷰 적용
앱 내부에 HTML 컨텐츠를 적용하려고 한다
웹뷰적용
리액트 네이티브에 웹뷰를 적용하는 방법은 아래와 같습니다
React Native 로 webview 만 있는 앱 만들기이거는 html 태그 또는 외부 URL을 사용할 때고
인터넷 필요없는 html 적용
html, js, css 파일을 asset 으로 적용해서 WebView 로 표시 할 수 있다
일단 만들기 전에 패키지 명 부터 바꾸자…나중에 후회한다
특히 안드로이드 APP
세가지 작업 필요
[] 리액트 네이티브에서 WebView 파일을 만들어준다
[] html, css, js 파일이 있는 html 폴더를 만들어준다
[] 안드로이드, iOS 에서 html 폴더를 자산으로 등록해준다
[] MyWebView 에서 안드로이드, iOS 의 경우 uri 를 틀리게 지정해준다
리액트 네이티브에서 WebView 파일을 만들어준다
1 | ## 웹뷰를 설치해주고 |
폴더 구조 만들고
1 | index.js |
index.js 는 app.js 만 사용하면 되고
App.js 는 MyWebView 컴포넌트를 사용
실제 메인소스는 MyWebView 에 있습니다
html, css, js 파일이 있는 html 폴더를 만들어준다
로컬 html, css, js 파일을 모아서
1 | html > Web.bundle 폴더를 생성합니다 |
Web.bundle 폴더 안에 index.html 이 들어갑니다
안드로이드, iOS 에서 html 폴더를 자산으로 등록해준다
안드로이드
안드로이드 스튜디오를 실행하고
app 아래에 New > Folder > Assets Folder 를 생성합니다
Change Folder Location 을 체크하고 ../../html
를 입력합니다
그러면 app > assets 폴더가 생기면서 Web.bundle 폴더를 하위로 갖게 됩니다
iOS
Xcode 로 프로젝트를 실행하고
Web.bundle 폴더를 프로젝트 밑으로 드래그 합니다
팝업이 떴을때
[] Copy items if needed 는 체크 하지 않습니다
그러면 dk2(프로젝트명) 밑으로 Web.bundle 폴더가 생깁니다.
MyWebView 에서 안드로이드, iOS 의 경우 uri 를 틀리게 지정해준다
1 | - src/components/MyWebView.js |
웹뷰 컴포넌트로 들어가서
1 | const isAndroid = Platform.OS === 'android'; |
이런식으로 안드로이드 일 경우는 file 을 사용하고
iOS 일 경우는 Web.bundle 로 시작하게 하면
로컬에 있는 index.html 이 webview 를 이용해서 불러올 수 있습니다.
연관포스트
- React Native: How to Load SPA or Static HTML Site inside WebView
- Load Local HTML File or URL in React Native using react-native-webview
- React Native 로 패키지 이름 바꾸기
- React Native 로 local html을 webview 에 적용하기
- React Native 로 webview 만 있는 앱 만들기
- React Native webview 디버그하기