728x90
웹뷰 페이지를 중점으로 웹앱을 구상해야 하는 상황이었다.
우선 기본적인 세팅은 했지만 어떻게 Web 과 Native 와의 상호작용을 해야할 지 자세히 몰랐었다.
그리고 웹뷰의 히스토리 기록과 캐시 등 여러가지 문제점들이 발생되어 해결방법을 찾아 보았다.
우선 웹뷰를 세팅한 코드이다.
setJavaScriptEnabled(true)는 자바스크립트를 사용할 수 있도록 해주는 메소드이다.
setWebChromeClient 는 크롬을 주 클라이언트로 사용하겠다는 선언이고 여기에서 필요권한을 요청할 수 있다.
그리고 웹뷰 클라이언트 선언을 통해서 페이지 기능과 관련한 처리를 해줄 수 있다.
여기에서 onReceivedError 가 발생되면 해당 웹뷰 히스토리를 삭제하는 명령어를 넣어 주었다.
그리고 WebSetting을 통해서 강제 덮어쓰기 가능하도록 설정해두고 캐시도 저장해 두는 것이 아니라 그때마다 초기화되도록 설정해놨다.
그리고 제일 중요한게 addJavascriptInterface 부분인데 저 부분이 바로 Web. 과 Native 간의 기능을 호환시켜줄 수 있는 Bridge 역할을 하는 함수이다.
그리고 해당 인터페이스 익명 클래스를 만들어서 어노테이션을 적용시켜 서로 간 호출될 수 있도록 설정해주면 된다.
'Java' 카테고리의 다른 글
AOS - Rxjava3 , Single , Disposable (0) | 2024.06.23 |
---|---|
AOS_ AndroidStudio Github 연동 (0) | 2024.03.05 |
AOS_ 버전 업데이트 관련 에러 (0) | 2024.03.04 |
AOS_ Rxjava 비동기와 동기 (0) | 2024.03.04 |
AOS_ SharedPreference의 commit 과 apply 차이 (0) | 2024.03.04 |