App Linker


App Linker는 3.0.0 버전 이상 부터 제공되며 해당 라이브러리를 추가하여 사용해야 된다.

App Linker 은 HSP 에서 확장 라이브러리로 제공하는 API 로 aar 라이브러리 파일과 build.gradle 파일을 수정하여 사용할 수 있다. 

라이브러리 추가 방법은 Android 개발 가이드의 내용을 참조하면 된다.

App Linker 은 외부 앱을 실행 시키기 위한 기능을 가지고 있으며, Optional 한 기능이므로 사용자가 별도로 개발하여 사용해도 무방하다. 


start

내/외부 앱을 실행 시킬 수 있으며 인자로 사용되는 JSONObject 는 아래와 같은 형태를 가지며 대부분 Android 에서 앱을 실행 시킬 때 사용되는 데이터 위주로 구성되며 그 세부 내용은 하단의 표를 참고 한다. 

JSON Format

{
   "android" : {
       "packageName": "",
       "activity": "",
       "action": "",
       "uri": "",
       "type": "",
       "permissions": [],
       "extra": []
    }
}
파라미터설명
packageName실행시킬 앱의 패키지 명
activity실행시킬 앱의 Activity 클래스 명
action앱을 실행 할 때 setAction 에 설정할 값
uri앱을 실행 할 때 setData 에 설정할 값
type앱을 실행 할 때 setType 에 설정할 값
permissions앱 실행 에 필요한 런타임 퍼미션 목록
extra앱을 실행 할 때  setExtra 에 설정할 값
  

Example

val obj = JSONObject().apply {
    put("android", JSONObject().apply {
        put("action", "android.intent.action.SENDTO")
        put("uri", "smsto:0800000123")
   })
}

// 3.10.18 이상
DAPAppLinker.start(activity, obj, {
   // TODO
}) {
   // TODO
}

// 3.10.18 이하
DAPAppLinker.start(activity, obj)
JSONObject data = new JSONObject();
data.put("action", "android.intent.action.SENDTO");
data.put("uri", "smsto:0800000123");

JSONObject obj = new JSONObject();
obj.put("android", data);

// 3.10.18 이상
DAPAppLinker.start(activity, obj, result -> {
   // TODO
}, e -> {
   // TODO
});

// 3.10.18 이하
DAPAppLinker.start(activity, obj);

canStart

canStart 는 실행하고자 하는 앱의 패키지 명을 미리 전달하여 해당 앱이 설치 되어 있는지 확인할 수 있는 메소드 이다. 

Example

// 3.10.18 이상
DAPAppLinker.canStart(activity, "패키지명", {
   // TODO
}) {
   // TODO
}

// 3.10.18 이하
val result = DAPAppLinker.canStart(activity, "패키지명")
// 3.10.18 이상
DAPAppLinker.canStart(activity, "패키지명", result -> {
   // TODO
}, e -> {
   // TODO
});

// 3.10.18 이하
boolean result = DAPAppLinker.canStart(activity, "패키지명");