inapp


In App 는 3.7.13 버전 이상 부터 제공되며 기본 라이브러리에 포함되어 있다.

In App 은 앱 내에서 사용자가 의도에 따라 별도로 다운로드/삭제 되는 앱이며, 고객 사 에서 앱 배포 초기 시점에 다수의 대용량 비즈앱을 모두 다운로드 하여 네트워크에 트래픽 집중 되는 문제 그리고 특정 타깃에게만 지정된 비즈앱을 사용하게 하기 위한 요구사항에 의해 기획 / 설계 되었다.

In App 을 위해서 HSP 는 비즈앱의 타입을 재 정의 하여 requiredoptional 앱으로 구분하며, required 앱은 기존과 동일하게 다운로드 하고 optional 앱은 사용자가 필요에 의해 다운로드 요청 시에만 다운로드 하도록 설계되었다.

업데이트의 경우 optional 앱이 단말에 설치된 이후부터는 required 앱과 동일하게 동작 되도록 설계되었다.


getList

getList 는 서버에서 현재 업로드 된 In App 형태를 가지는 비즈앱 목록을 전달 받은 후 단말 내에 설치된 비즈앱의 정보를 데이터베이스에서 얻은 후 이 값들을 비교하여 In App 목록을 전달 받게 된다.

successCallback

필드필드설명
appListbizAppDesc비즈앱 설명 문구
bizAppId비즈앱 아이디
fileSize비즈앱 파일 크기
hashCode비즈앱에 SHA-256 해시 값
version비즈앱 버전
isInstalled비즈앱 설치 여부
   

errorCallback

필드설명
없음없음
  

Example

hone.channel.execute('inapp', 'getList', [],
   function (appList) {
       // TODO
   }, function (e) {
        alert(JSON.stringify(e));
    }
);

Result

[{
   "bizAppDesc": "비즈앱 설명 문구",
   "bizAppId": "inapp1",
   "fileSize": 939613,
   "hashCode": "bc6ff1d5cef7709d8436ceddeb617da7b94b1ebffc1e4ec2729a16dddfe51cb7",
   "version": "3.1.20171024164838753",
   "isInstalled": false
},{
   "bizAppDesc": " 앱 설명 문구",
   "bizAppId": "inapp2",
   "fileSize": 79521,
   "hashCode": "617353a1fa838bc1b0a40061f1bca8658744bc684621d50286f04563bba25c19",
   "version": "3.1.20171024164927501",
   "isInstalled": false
}]

install

install 은 getList 로 전달 받은 In App 정보를 기준으로 지정된 위치에 앱을 다운로드 한 뒤 install (unzip) 하고 설치하고 올바르게 설치되었으면 디비에 정보를 남기게 된다. 만약 파일 다운로드가 실패 하였거나 install 이 제대로 이루어지지 않았다면 오류를 반환 한다.

successCallback

필드설명
없음없음
  

errorCallback

필드설명
없음없음
  

Example

var bizApp = 'sub'; // getList 로 얻은 비즈앱 정보
hone.channel.execute('inapp', 'install', [bizApp],
   function (result) {
       // TODO
   }, function (e) {
        alert(JSON.stringify(e));
    }
);

uninstall

unstainll 은 단말에 설치된 In App 파일을 삭제 요청 한 뒤 올바르게 삭제 되었으면 삭제된 In App 의 아이디를 기준으로 디비 데이터를 삭제한다. uninstall 의 경우 로컬 정보만을 기준으로 동작하므로 서버 (Operations) 와의 연동 작업은 별도로 존재하지 않는다.

successCallback

필드설명
없음없음
  

errorCallback

필드설명
없음없음
  

Example

var bizAppId = 'sub'; // 설치되어 있는 앱의 아이디 정보
hone.channel.execute('inapp', 'uninstall', [bizAppId],
   function (result) {
       // TODO
   }, function (e) {
        alert(JSON.stringify(e));
    }
);