회사에서 진행하는 리액트 네이티브 프로젝트에서 웹뷰를 사용해야 했다.
react-native-webview
https://www.npmjs.com/package/react-native-webview
웹뷰를 사용하고 테스트하던 중 안드로이드 플랫폼에서만 페이지 이동(react navigation 사용하였음), 스크롤 등의 애니메이션이 발생할 때 충돌이 발생하며 튕기는 버그가 발생하는 것을 확인했다.
구글링 하여 해결책을 찾아보았다.
1. 페이지 이동 시 발생하는 이슈 해결책
react navigation을 사용해 라우팅을 구현하였기 때문에 navigation 설정(options)에서 안드로이드 플랫폼만 라우팅 시 애니메이션이 발생하지 않도록 했다.
import {Platform} from 'react-native';
...
<Stack.Screen
name={~~~~}
component={~~~~}
options = {
animationEnabled=Platform.OS !== 'android',
}
/>
...
2. 스크롤 시 발생하는 이슈 해결책
WebView component의 스타일에 아래의 스타일을 추가한다.
{
opacity: 0.99,
minHeight: 1,
}
다른 방법도 있었지만 성능에 영향을 줄 수 있다고 하여 사용하지 않았다.
다른 방법
WebView 컴포넌트에 아래 prop을 추가한다.
androidHardwareAccelerationDisabled={true}
'Computer Science > React-Native' 카테고리의 다른 글
안드로이드 에뮬레이터 자체 폰트 사이즈 설정 & React Native 기기 폰트 스케일 설정 알아내기 (0) | 2022.06.28 |
---|---|
[React Native] UI 스레드와 JS 스레드, 그리고 Native Bridge (0) | 2022.04.15 |