반응형

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 함수 하나를 서로 약속하고 호출하면 웹에선 이를 쿠키로 저장하든 세션으로 저장하든 하여 "성군 앱이 되실 분 이십니다."라며 처리해도 무방하나 좀 없어보인다.

반응형
Posted by Hippalus
,