MDM 가이드(AOS)
기기 관리 시나리오
앱 실행 후, 앱 정보 api 호출
기기 관리 여부(requriedUpdates)가 false면 앱 실행 불가
기기 관리 여부(requriedUpdates)가 true면 기기 등록 api 호출
기기 등록에 실패하면 앱 실행 불가
기기 등록 후 서버와 통신시, 쿠키에 deviceID와 appID를 담아서 통신
앱 정보 API
Api 설명
osType과 appId를 파라미터로 입력하여, Response로 앱에 대한 정보(웹버전,앱버전,앱스토어 url, 필수다운로드 유무, 기기관리여부 등)를 반환하는 api다.Api 호출
아래와 같이 파라미터로 appId, osType을 파라미터로 입력하여 GET방식으로 api를 호출한다.[GET] https://chamomile.lotteinnovate.com/mobile-app-test/mobile/woong01/info?osType=aosNative에서 호출
retrofit2 라이브러리를 활용하여 api를 호출한다. 파라미터로 osType과 appId를 넣어준다. 해당 api를 호출하는 getVersionApi는 앱 버전체크 매서드와(checkAppVersion), 웹 버전 체크 매서드(checkWebVersion)에서 사용된다. response의 code가 200일 경우에만, response의 데이터를 받고, 그 외엔 예외처리한다.
기기 등록 API
Api 설명
appId, deviceId, osType, deviceType 등 기기 정보를 입력하여, Response로 기기등록 유무를 반환하는 api다.Api 호출
아래와 같이 파라미터에는 appId, body에는 deviceId, deviceName, osType, osVer, deviceType을 파라미터로 입력하여 POST방식으로 api를 호출한다.[POST] https://chamomile.lotteinnovate.com/mobile-app-test/mobile/woong01/device body { "deviceId": "xxxxxxxxxxxxx", "deviceName": "웅웅", "osType": "aos", "osVer": "14", "deviceType": "smartphone" }Native에서 호출
retrofit2 라이브러리를 활용하여 api를 호출한다. 파라미터로 appId와 body에 DeviceApiRequest를 넣어준다. 해당 api를 호출하는 registerDeviceApi는 response의 code가 200일 경우에만, 기기등록 성공으로 간주하고 앱을 계속 실행하고, 그 외엔 예외처리한다.
기기 관리 API
Api 설명
기기 등록 후, 서버와 통신할때 deviceId, appId를 입력하여, Response로 기기가 관리되고 있는지 유무를 반환하는 api다.Api 호출
아래와 같이 헤더에 deviceId, appId를 입력하여, GET방식으로 api를 호출한다.[GET] https://chamomile.lotteinnovate.com/mobile-app-test/test/device Headers { "deviceId": "xxxxxxxxxxxxx", "appId": "woong01" }Native에서 호출
retrofit2 라이브러리를 활용하여 api를 호출한다. 파라미터로 appId와 body에 DeviceApiRequest를 넣어준다. 해당 api를 호출하는 checkDeviceApi는 response의 code가 200일 경우에만 기기등록 성공으로 간주하고 앱을 계속 실행하고, 그 외엔 예외처리한다.
쿠키를 이용한 통신
앱 실행 후, 쿠키 초기화
url에 deviceId, appId를 쿠키로 설정
쿠키에 담긴 deviceId와 appId 값을 추출
기기 관리 api인 checkDeviceApi 매서드 호출
기기 관리 여부에 따라, 앱 계속 실행 여부 결정
아래 샘플코드 확인 (testCookie 매서드)
캐모마일 홈페이지에 deviceId와 AppId를 쿠키에 넣어 API를 호출한 예시이다.