-
안드로이드 커스텀탭 장단점프로그래밍/ 안드로이드어플만들기 2023. 1. 23. 22:09728x90반응형
안드로이드 어플에서 기존에 사용하던 웹뷰 대신
커스텀탭(custom tabs)을 사용할까 고민하면서 장점을 확인해보니
커스텀탭이 웹뷰보다 속도가 2배 정도 빠르다고 한다.
그리고 당연히 크롬 브라우저를 사용하는 것이니
기존 웹 브라우저에서 사용하는 캐싱을 그대로 사용할 수 있음.
그런데 기존에 쓰던 앱이 있기 때문에 아래 기능을 충족해야한다.
주소창 숨기는 것 가능한가
웹과 앱의 소유권이 동일하면 TWA 를 사용하면 된다고 하는데
처음 생각했던 것처럼 custom tabs 옵션으로 설정하는 것처럼 간단하지는 않음
If you control both the content and the application, you can use Trusted Web Activities to completely remove the URL bar. You'll need to implement Digital Asset Links to validate the ownership of both.
If you don't own the content, it is not possible to hide the URL below the title. The URLs needs to visible to the user, so that they can know in which site they are. By removing this from the UI, a malicious site could mimic the UI of another one, and this could potentially create a security issue for users.
Indeed, this is by design, and an important part of the security model of custom tabs. If you do not need access to the user's browser state (i.e. cookies, etc. that have already been set in their browser) you can use a WebView to display the contents of this page without any decoration. Trusted Web Activities are now an option, if you own both the application and the content being opened.인앱 결제 가능한가
가능은 한데 이것도 새로 구현해야함.
그 외 기능 문제없는가
custom tabs는 어플이 웹사이트와 상호작용(interact)하는 기능을 제공하지 않기 때문에 (보안상 이유...)
기존에 웹뷰에서 자바스크립트인터페이스로 구현했던 기능(push 관련 기능)들
역시 사용이 불가능 하다.
- 광고영역 노출되는것 X
- 팝업 뜨는것 ㅇ
- 이용권/구독 구매 ㅇ (수정 필요)
- 카메라 ㅇ
- push 알림 xJavacsriptInterface can be used to implement communication between the app and the web content, such as sending data from the app to the web page or receiving data from the web page in the app.
Q: I am using JavascriptInterface of Webview. Is it possible on Chrome Custom Tabs? Or Is there alternative method of that?
A:
No; that would be a critical security hole. Since custom tabs use cookies, settings, and password managers from the user's real Chrome instance, you cannot control them at all
Your desire for a Javascript bridge from a web app would mean that there would be a arbitrary way for any website code to interact outside of the web container. The rational as to why that is not allowed is given as the responses in the first link.커스텀탭으로 가는것은 생각보다 공수가 많이 들고 기능에 제한이 많이 있어서
일단 기존 웹뷰를 사용하기로 했다.
참고
728x90반응형'프로그래밍 > 안드로이드어플만들기' 카테고리의 다른 글
맥북에서 앱 개발하기 - 안드로이드 스튜디오 설치 및 앱 빌드하기 (0) 2023.08.06 안드로이드 오류 - Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLEbe specified when creating a PendingIntent. (0) 2023.01.23 안드로이드 스튜디오 - .gitignore 설정하기 (0) 2023.01.09 안드로이드 앱 빌드 오류 : No matching client found for package name (0) 2022.12.31 어플 개발일기 - 안드로이드 11에서 camera 로 찍은 사진 저장안되는 오류 수정 (0) 2022.12.17