swift로 iOS WEB APP을 만들다보면 웹과 앱 사이 통신이야 javascript로 서로 통신을 하니 별 문제가 없는데
앱 이용자와 일반 모바일 웹 이용자의 화면 UI를 다르게 제공할 일이 존재한다.
가령 GNB에 앱 설정을 불러오는 버튼은 앱 이용자에게만 지원할 때 인데 모바일 웹에선 앱의 기능 설정할 일이 없을테니 말이다.
useragent로 확인을 한들 사파리 브라우저로 접속 하든 앱의 wkwebview로 접속 하든 아주 좃 아니 똑같다.
어쩔 수 없다.
앱으로 접속할 땐 url을 호출할 때 custom agent로 agent를 마사지 해줘야 한다.
webView.evaluateJavaScript("navigator.userAgent") {(result, error) in
let originUserAgent = result as! String
let customAgent = originUserAgent + " IOSAPP"
self.webView.customUserAgent = customAgent
}
이렇게 보내주고 웹에서 agent를 분석할 때 IOSAPP이 존재하면 아하 우리 회원님이 앱을 사용하고 계시는구나~ 하며 앱용 기능을 제공하면 되겠다.
물론 앱에서 웹쪽으로 "이보시게 관상가 양반. 내가 앱이 될 상인가?" 라며 JAVASCRIPT 함수 하나를 서로 약속하고 호출하면 웹에선 이를 쿠키로 저장하든 세션으로 저장하든 하여 "성군 앱이 되실 분 이십니다."라며 처리해도 무방하나 좀 없어보인다.
'모바일 & 앱' 카테고리의 다른 글
잘되던 개발 아이폰 device가 xcode에 개발 장비로 device 등록 불가 현상 and DT_TOOLCHAIN_DIR 오류 (0) | 2023.10.12 |
---|---|
아이폰에서 wkWebview로 웹사이트 웹뷰 디버깅 하는 쉬운 방법 (1) | 2023.09.11 |
윈도우 11의 불편한 추가옵션표시 끄기 (0) | 2023.09.04 |
swift로 문자열 다루기 (확장자 제거, 원하는 자릿수만 추출하기) (1) | 2023.07.19 |
swift로 dictionary생성하고 오름차순 내림차순 정렬하기 (0) | 2023.07.19 |