사용자는 LSA 시스템에 웹 또는 앱으로 접근할 수 있다. LSA 앱은 하이브리드 앱
으로 AR 화면만 네이티브이고 나머지는 웹 뷰이다. 웹 뷰에서 AR 화면으로 이동하려면 웹 뷰와 네이티브가 소통할 수 있어야한다. 소통하는 방법은 정말 다양하다.
필요한 요청
웹 뷰에서 네이티브에 요청해야할 것은 세개이다.
- 실행환경이 앱의 웹뷰인지 확인한다.
- AR 실습 화면을 연다.
- AR 매뉴얼 설정 화면을 연다.
Bridge
처음에 하이브리드 앱이 어떻게 소통하는지 몰랐을 때는 웹 뷰에 로컬스토리지에 요청 사항을 저장하고 네이티브는 주기적으로 그것을 확인해 요청을 들어주는 방식을 떠올렸다. 정말 비효율적인 방법이다.
하이브리드 앱의 소통방식이 궁금하여 모바일앱프로그래밍 수업의 최종 프로젝트로 하이브리드 앱을 개발하였다. 여기서 브리지
라는 것을 알게되었다. 안드로이드 스튜디오 자바에서는 addJavascriptInterface라는 메소드로 웹에서 사용할 수 있는 브리지를 등록할 수 있다. 웹에서 브리지 함수를 호출하여 네이티브 코드를 실행하고 동기적으로 값을 반환받을 수 있다.
Scheme
결과적으로는 Scheme
으로 웹 뷰와 네이티브가 소통하는 것으로 결정했다. AR 담당 개발자가 본인에게 이 방식이 쉽다고 해서 내린 결정이다. 웹에서는 아래처엄 스킴을 사용해 네이티브와 통신할 수 있다.
window.location.href = "uniwebview://onARmanual?id=1" //스킴