지난번에 userAgent를 통해 접속자의 Android / iPhone 구분을 알려드렸는데 이번에는 userAgent를 이용해 웹 접속과 앱접속을 구분하
는 방법을 알려드리겠습니다.
Android 와 IOS 모두 Native소스에서 userAgent의 값을 넣을 수 있습니다.
이 소스를 이용해서 자바스크립트에서 웹 과 앱 접속 구분하기를 해보겠습니다.
다음 예제는 앱을 통한 접속상태일때 userAgent 에 "inApp" 이라는 문자열을 추가해서 구분해보도록 하겠습니다.
Android
webView.getSettings().setUserAgentString(webView.getSettings().getUserAgentString + " inApp");
IOS
NSString *originUserAgent = [[[UIWebView alloc] init] stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
NSString *inAppTag = @" inApp";
NSString *appendedUserAgent = [userAgent stringByAppendingString:inAppTag];
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent":
appendedUserAgent}];
Android / IOS 각각 위의 소스로 inApp이라는 문자열을 추가할 수 있으며 아래와같이 웹과 앱을 구분하는 함수를 작성할 수 있습니다.
// 웹/앱 구분함수 true : 앱접속 , false : 웹접속
function isNative() {
return /inApp/i.test(window.navigator.userAgent);
}