@simplysm/capacitor-plugin-intent 12.16.52 → 14.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -139
- package/android/build.gradle +1 -0
- package/android/src/main/kotlin/kr/co/simplysm/capacitor/intent/IntentPlugin.kt +365 -0
- package/dist/Intent.d.ts +29 -18
- package/dist/Intent.d.ts.map +1 -0
- package/dist/Intent.js +41 -22
- package/dist/Intent.js.map +1 -0
- package/dist/IntentPlugin.d.ts +72 -0
- package/dist/IntentPlugin.d.ts.map +1 -0
- package/dist/IntentPlugin.js +2 -0
- package/dist/IntentPlugin.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -0
- package/dist/web/IntentWeb.d.ts +7 -5
- package/dist/web/IntentWeb.d.ts.map +1 -0
- package/dist/web/IntentWeb.js +17 -13
- package/dist/web/IntentWeb.js.map +1 -0
- package/package.json +15 -10
- package/src/Intent.ts +56 -25
- package/src/IntentPlugin.ts +81 -0
- package/src/index.ts +2 -1
- package/src/web/IntentWeb.ts +27 -16
- package/android/src/main/java/kr/co/simplysm/capacitor/intent/IntentPlugin.java +0 -376
- package/dist/IIntentPlugin.d.ts +0 -63
- package/dist/IIntentPlugin.js +0 -1
- package/src/IIntentPlugin.ts +0 -65
- package/tests/slice1-directory-and-config.spec.ts +0 -50
- package/tests/slice2-java-renaming.spec.ts +0 -34
- package/tests/slice3-typescript-renaming.spec.ts +0 -76
- package/tests/slice4-docs-and-deprecation.spec.ts +0 -31
- package/tests/slice5-start-activity-for-result-android.spec.md +0 -98
- package/tests/slice5-start-activity-for-result-types.spec.ts +0 -40
- package/tests/slice6-start-activity-for-result-web.spec.ts +0 -34
- package/tsconfig.json +0 -8
package/dist/Intent.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { PluginListenerHandle } from "@capacitor/core";
|
|
2
|
+
import type { IntentResult, StartActivityForResultOptions, StartActivityForResultResult } from "./IntentPlugin";
|
|
2
3
|
/**
|
|
3
|
-
* Android
|
|
4
|
-
* -
|
|
4
|
+
* Android 인텐트 플러그인
|
|
5
|
+
* - 브로드캐스트 송수신, 실행 인텐트 조회
|
|
6
|
+
* - 산업용 디바이스 연동용 (바코드 스캐너, PDA 등)
|
|
5
7
|
*/
|
|
6
8
|
export declare abstract class Intent {
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
9
|
-
* @returns 해제 함수
|
|
10
|
+
* 브로드캐스트 수신기 등록
|
|
11
|
+
* @returns 구독 해제 함수
|
|
10
12
|
*
|
|
11
13
|
* @example
|
|
12
14
|
* ```ts
|
|
@@ -15,17 +17,17 @@ export declare abstract class Intent {
|
|
|
15
17
|
* (result) => console.log(result.extras)
|
|
16
18
|
* );
|
|
17
19
|
*
|
|
18
|
-
* // 해제
|
|
20
|
+
* // 구독 해제
|
|
19
21
|
* unsub();
|
|
20
22
|
* ```
|
|
21
23
|
*/
|
|
22
|
-
static subscribe(filters: string[], callback: (result:
|
|
24
|
+
static subscribe(filters: string[], callback: (result: IntentResult) => void): Promise<() => Promise<void>>;
|
|
23
25
|
/**
|
|
24
|
-
* 모든
|
|
26
|
+
* 모든 브로드캐스트 수신기 구독 해제
|
|
25
27
|
*/
|
|
26
28
|
static unsubscribeAll(): Promise<void>;
|
|
27
29
|
/**
|
|
28
|
-
*
|
|
30
|
+
* 브로드캐스트 전송
|
|
29
31
|
*
|
|
30
32
|
* @example
|
|
31
33
|
* ```ts
|
|
@@ -42,23 +44,32 @@ export declare abstract class Intent {
|
|
|
42
44
|
extras?: Record<string, unknown>;
|
|
43
45
|
}): Promise<void>;
|
|
44
46
|
/**
|
|
45
|
-
*
|
|
47
|
+
* 실행 인텐트 조회
|
|
46
48
|
*/
|
|
47
|
-
static getLaunchIntent(): Promise<
|
|
49
|
+
static getLaunchIntent(): Promise<IntentResult>;
|
|
48
50
|
/**
|
|
49
|
-
*
|
|
51
|
+
* 이벤트 리스너 등록
|
|
52
|
+
* @returns 리스너 핸들 (handle.remove()로 해제)
|
|
53
|
+
*/
|
|
54
|
+
static addListener(eventName: "newIntent", callback: (result: IntentResult) => void): Promise<PluginListenerHandle>;
|
|
55
|
+
/**
|
|
56
|
+
* 모든 이벤트 리스너 제거
|
|
57
|
+
*/
|
|
58
|
+
static removeAllListeners(): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* startActivityForResult로 외부 Activity를 실행하고 결과를 수신한다
|
|
50
61
|
*
|
|
51
62
|
* @example
|
|
52
63
|
* ```ts
|
|
53
64
|
* const result = await Intent.startActivityForResult({
|
|
54
|
-
* action: "
|
|
55
|
-
*
|
|
65
|
+
* action: "com.example.PAY",
|
|
66
|
+
* extras: { amount: 1000 },
|
|
56
67
|
* });
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* console.log("Selected:", result.data);
|
|
68
|
+
* if (result.resultCode === -1) {
|
|
69
|
+
* // RESULT_OK
|
|
60
70
|
* }
|
|
61
71
|
* ```
|
|
62
72
|
*/
|
|
63
|
-
static startActivityForResult(options:
|
|
73
|
+
static startActivityForResult(options: StartActivityForResultOptions): Promise<StartActivityForResultResult>;
|
|
64
74
|
}
|
|
75
|
+
//# sourceMappingURL=Intent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Intent.d.ts","sourceRoot":"","sources":["../src/Intent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAEV,YAAY,EACZ,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AASxB;;;;GAIG;AACH,8BAAsB,MAAM;IAC1B;;;;;;;;;;;;;;OAcG;WACU,SAAS,CACpB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GACvC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAY/B;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;;;;;;;;;OAYG;WACU,IAAI,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/F;;OAEG;WACU,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC;IAIrD;;;OAGG;WACU,WAAW,CACtB,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GACvC,OAAO,CAAC,oBAAoB,CAAC;IAIhC;;OAEG;WACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhD;;;;;;;;;;;;;OAaG;WACU,sBAAsB,CACjC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,4BAA4B,CAAC;CAGzC"}
|
package/dist/Intent.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { registerPlugin } from "@capacitor/core";
|
|
2
|
-
const
|
|
2
|
+
const intentPlugin = registerPlugin("Intent", {
|
|
3
3
|
web: async () => {
|
|
4
|
-
const { IntentWeb } = await import("./web/IntentWeb");
|
|
4
|
+
const { IntentWeb } = await import("./web/IntentWeb.js");
|
|
5
5
|
return new IntentWeb();
|
|
6
6
|
},
|
|
7
7
|
});
|
|
8
8
|
/**
|
|
9
|
-
* Android
|
|
10
|
-
* -
|
|
9
|
+
* Android 인텐트 플러그인
|
|
10
|
+
* - 브로드캐스트 송수신, 실행 인텐트 조회
|
|
11
|
+
* - 산업용 디바이스 연동용 (바코드 스캐너, PDA 등)
|
|
11
12
|
*/
|
|
12
13
|
export class Intent {
|
|
13
14
|
/**
|
|
14
|
-
*
|
|
15
|
-
* @returns 해제 함수
|
|
15
|
+
* 브로드캐스트 수신기 등록
|
|
16
|
+
* @returns 구독 해제 함수
|
|
16
17
|
*
|
|
17
18
|
* @example
|
|
18
19
|
* ```ts
|
|
@@ -21,24 +22,29 @@ export class Intent {
|
|
|
21
22
|
* (result) => console.log(result.extras)
|
|
22
23
|
* );
|
|
23
24
|
*
|
|
24
|
-
* // 해제
|
|
25
|
+
* // 구독 해제
|
|
25
26
|
* unsub();
|
|
26
27
|
* ```
|
|
27
28
|
*/
|
|
28
29
|
static async subscribe(filters, callback) {
|
|
29
|
-
const { id } = await
|
|
30
|
+
const { id } = await intentPlugin.subscribe({ filters }, (result) => {
|
|
31
|
+
// { id }만 포함된 초기 resolve를 필터링
|
|
32
|
+
if (result.action != null) {
|
|
33
|
+
callback(result);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
30
36
|
return async () => {
|
|
31
|
-
await
|
|
37
|
+
await intentPlugin.unsubscribe({ id });
|
|
32
38
|
};
|
|
33
39
|
}
|
|
34
40
|
/**
|
|
35
|
-
* 모든
|
|
41
|
+
* 모든 브로드캐스트 수신기 구독 해제
|
|
36
42
|
*/
|
|
37
43
|
static async unsubscribeAll() {
|
|
38
|
-
await
|
|
44
|
+
await intentPlugin.unsubscribeAll();
|
|
39
45
|
}
|
|
40
46
|
/**
|
|
41
|
-
*
|
|
47
|
+
* 브로드캐스트 전송
|
|
42
48
|
*
|
|
43
49
|
* @example
|
|
44
50
|
* ```ts
|
|
@@ -51,30 +57,43 @@ export class Intent {
|
|
|
51
57
|
* ```
|
|
52
58
|
*/
|
|
53
59
|
static async send(options) {
|
|
54
|
-
await
|
|
60
|
+
await intentPlugin.send(options);
|
|
55
61
|
}
|
|
56
62
|
/**
|
|
57
|
-
*
|
|
63
|
+
* 실행 인텐트 조회
|
|
58
64
|
*/
|
|
59
65
|
static async getLaunchIntent() {
|
|
60
|
-
return
|
|
66
|
+
return intentPlugin.getLaunchIntent();
|
|
61
67
|
}
|
|
62
68
|
/**
|
|
63
|
-
*
|
|
69
|
+
* 이벤트 리스너 등록
|
|
70
|
+
* @returns 리스너 핸들 (handle.remove()로 해제)
|
|
71
|
+
*/
|
|
72
|
+
static async addListener(eventName, callback) {
|
|
73
|
+
return intentPlugin.addListener(eventName, callback);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 모든 이벤트 리스너 제거
|
|
77
|
+
*/
|
|
78
|
+
static async removeAllListeners() {
|
|
79
|
+
await intentPlugin.removeAllListeners();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* startActivityForResult로 외부 Activity를 실행하고 결과를 수신한다
|
|
64
83
|
*
|
|
65
84
|
* @example
|
|
66
85
|
* ```ts
|
|
67
86
|
* const result = await Intent.startActivityForResult({
|
|
68
|
-
* action: "
|
|
69
|
-
*
|
|
87
|
+
* action: "com.example.PAY",
|
|
88
|
+
* extras: { amount: 1000 },
|
|
70
89
|
* });
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* console.log("Selected:", result.data);
|
|
90
|
+
* if (result.resultCode === -1) {
|
|
91
|
+
* // RESULT_OK
|
|
74
92
|
* }
|
|
75
93
|
* ```
|
|
76
94
|
*/
|
|
77
95
|
static async startActivityForResult(options) {
|
|
78
|
-
return
|
|
96
|
+
return intentPlugin.startActivityForResult(options);
|
|
79
97
|
}
|
|
80
98
|
}
|
|
99
|
+
//# sourceMappingURL=Intent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Intent.js","sourceRoot":"","sources":["../src/Intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AASjD,MAAM,YAAY,GAAG,cAAc,CAAe,QAAQ,EAAE;IAC1D,GAAG,EAAE,KAAK,IAAI,EAAE;QACd,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACtD,OAAO,IAAI,SAAS,EAAE,CAAC;IACzB,CAAC;CACF,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,OAAgB,MAAM;IAC1B;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,OAAiB,EACjB,QAAwC;QAExC,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;YAClE,8BAA8B;YAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC1B,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,IAAI,EAAE;YAChB,MAAM,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc;QACzB,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAA6D;QAC7E,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe;QAC1B,OAAO,YAAY,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,SAAsB,EACtB,QAAwC;QAExC,OAAO,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB;QAC7B,MAAM,YAAY,CAAC,kBAAkB,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,CAAC,sBAAsB,CACjC,OAAsC;QAEtC,OAAO,YAAY,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;CACF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { PluginListenerHandle } from "@capacitor/core";
|
|
2
|
+
export interface IntentResult {
|
|
3
|
+
/** 브로드캐스트 액션 */
|
|
4
|
+
action?: string;
|
|
5
|
+
/** 추가 데이터 */
|
|
6
|
+
extras?: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
export interface StartActivityForResultOptions {
|
|
9
|
+
action?: string;
|
|
10
|
+
uri?: string;
|
|
11
|
+
extras?: Record<string, unknown>;
|
|
12
|
+
/** MIME type */
|
|
13
|
+
type?: string;
|
|
14
|
+
/** 특정 앱 지정 */
|
|
15
|
+
packageName?: string;
|
|
16
|
+
/** 특정 Activity 지정 */
|
|
17
|
+
className?: string;
|
|
18
|
+
/** Intent flags */
|
|
19
|
+
flags?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface StartActivityForResultResult {
|
|
22
|
+
resultCode: number;
|
|
23
|
+
data?: {
|
|
24
|
+
action?: string;
|
|
25
|
+
uri?: string;
|
|
26
|
+
extras?: Record<string, unknown>;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface IntentPlugin {
|
|
30
|
+
/**
|
|
31
|
+
* 브로드캐스트 수신기 등록
|
|
32
|
+
*/
|
|
33
|
+
subscribe(options: {
|
|
34
|
+
filters: string[];
|
|
35
|
+
}, callback: (result: IntentResult) => void): Promise<{
|
|
36
|
+
id: string;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* 특정 브로드캐스트 수신기 구독 해제
|
|
40
|
+
*/
|
|
41
|
+
unsubscribe(options: {
|
|
42
|
+
id: string;
|
|
43
|
+
}): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* 모든 브로드캐스트 수신기 구독 해제
|
|
46
|
+
*/
|
|
47
|
+
unsubscribeAll(): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* 브로드캐스트 전송
|
|
50
|
+
*/
|
|
51
|
+
send(options: {
|
|
52
|
+
action: string;
|
|
53
|
+
extras?: Record<string, unknown>;
|
|
54
|
+
}): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* 실행 인텐트 조회
|
|
57
|
+
*/
|
|
58
|
+
getLaunchIntent(): Promise<IntentResult>;
|
|
59
|
+
/**
|
|
60
|
+
* 앱 실행 중 수신되는 새 인텐트에 대한 리스너 등록
|
|
61
|
+
*/
|
|
62
|
+
addListener(eventName: "newIntent", listenerFunc: (data: IntentResult) => void): Promise<PluginListenerHandle>;
|
|
63
|
+
/**
|
|
64
|
+
* 모든 이벤트 리스너 제거
|
|
65
|
+
*/
|
|
66
|
+
removeAllListeners(): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* startActivityForResult로 외부 Activity를 실행하고 결과를 수신한다
|
|
69
|
+
*/
|
|
70
|
+
startActivityForResult(options: StartActivityForResultOptions): Promise<StartActivityForResultResult>;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=IntentPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntentPlugin.d.ts","sourceRoot":"","sources":["../src/IntentPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,SAAS,CACP,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,EAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GACvC,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE3B;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF;;OAEG;IACH,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzC;;OAEG;IACH,WAAW,CACT,SAAS,EAAE,WAAW,EACtB,YAAY,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,GACzC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,sBAAsB,CACpB,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,4BAA4B,CAAC,CAAC;CAC1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntentPlugin.js","sourceRoot":"","sources":["../src/IntentPlugin.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM;AACN,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
|
package/dist/web/IntentWeb.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { WebPlugin } from "@capacitor/core";
|
|
2
|
-
import {
|
|
3
|
-
export declare class IntentWeb extends WebPlugin implements
|
|
2
|
+
import type { IntentPlugin, IntentResult, StartActivityForResultOptions, StartActivityForResultResult } from "../IntentPlugin";
|
|
3
|
+
export declare class IntentWeb extends WebPlugin implements IntentPlugin {
|
|
4
|
+
private static readonly _warn;
|
|
4
5
|
subscribe(_options: {
|
|
5
6
|
filters: string[];
|
|
6
|
-
}, _callback: (result:
|
|
7
|
+
}, _callback: (result: IntentResult) => void): Promise<{
|
|
7
8
|
id: string;
|
|
8
9
|
}>;
|
|
9
10
|
unsubscribe(_options: {
|
|
@@ -14,6 +15,7 @@ export declare class IntentWeb extends WebPlugin implements IIntentPlugin {
|
|
|
14
15
|
action: string;
|
|
15
16
|
extras?: Record<string, unknown>;
|
|
16
17
|
}): Promise<void>;
|
|
17
|
-
getLaunchIntent(): Promise<
|
|
18
|
-
startActivityForResult(_options:
|
|
18
|
+
getLaunchIntent(): Promise<IntentResult>;
|
|
19
|
+
startActivityForResult(_options: StartActivityForResultOptions): Promise<StartActivityForResultResult>;
|
|
19
20
|
}
|
|
21
|
+
//# sourceMappingURL=IntentWeb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntentWeb.d.ts","sourceRoot":"","sources":["../../src/web/IntentWeb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AAEzB,qBAAa,SAAU,SAAQ,SAAU,YAAW,YAAY;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAEiB;IAE9C,SAAS,CACP,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,EAC/B,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GACxC,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAKpB,WAAW,CAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,IAAI,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnF,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC;IAIxC,sBAAsB,CACpB,QAAQ,EAAE,6BAA6B,GACtC,OAAO,CAAC,4BAA4B,CAAC;CAIzC"}
|
package/dist/web/IntentWeb.js
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import { WebPlugin } from "@capacitor/core";
|
|
2
2
|
export class IntentWeb extends WebPlugin {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
static _warn = () =>
|
|
4
|
+
// eslint-disable-next-line no-console
|
|
5
|
+
console.warn("[Intent] 웹 환경에서는 지원하지 않습니다.");
|
|
6
|
+
subscribe(_options, _callback) {
|
|
7
|
+
IntentWeb._warn();
|
|
8
|
+
return Promise.resolve({ id: "web-stub" });
|
|
6
9
|
}
|
|
7
10
|
async unsubscribe(_options) {
|
|
8
|
-
|
|
11
|
+
// 웹에서는 동작 없음
|
|
9
12
|
}
|
|
10
13
|
async unsubscribeAll() {
|
|
11
|
-
|
|
14
|
+
// 웹에서는 동작 없음
|
|
12
15
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
send(_options) {
|
|
17
|
+
IntentWeb._warn();
|
|
18
|
+
return Promise.resolve();
|
|
16
19
|
}
|
|
17
|
-
|
|
18
|
-
return
|
|
20
|
+
getLaunchIntent() {
|
|
21
|
+
return Promise.resolve({});
|
|
19
22
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return
|
|
23
|
+
startActivityForResult(_options) {
|
|
24
|
+
IntentWeb._warn();
|
|
25
|
+
return Promise.resolve({ resultCode: 0 });
|
|
23
26
|
}
|
|
24
27
|
}
|
|
28
|
+
//# sourceMappingURL=IntentWeb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntentWeb.js","sourceRoot":"","sources":["../../src/web/IntentWeb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQ5C,MAAM,OAAO,SAAU,SAAQ,SAAS;IAC9B,MAAM,CAAU,KAAK,GAAG,GAAG,EAAE;IACnC,sCAAsC;IACtC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAE9C,SAAS,CACP,QAA+B,EAC/B,SAAyC;QAEzC,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAwB;QACxC,aAAa;IACf,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,aAAa;IACf,CAAC;IAED,IAAI,CAAC,QAA8D;QACjE,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,eAAe;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,sBAAsB,CACpB,QAAuC;QAEvC,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,26 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/capacitor-plugin-intent",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "심플리즘 패키지 - Capacitor Intent
|
|
5
|
-
"author": "
|
|
3
|
+
"version": "14.0.4",
|
|
4
|
+
"description": "심플리즘 패키지 - Capacitor Intent 플러그인",
|
|
5
|
+
"author": "심플리즘",
|
|
6
|
+
"license": "Apache-2.0",
|
|
6
7
|
"repository": {
|
|
7
8
|
"type": "git",
|
|
8
9
|
"url": "https://github.com/kslhunter/simplysm.git",
|
|
9
10
|
"directory": "packages/capacitor-plugin-intent"
|
|
10
11
|
},
|
|
11
|
-
"license": "MIT",
|
|
12
12
|
"type": "module",
|
|
13
13
|
"main": "./dist/index.js",
|
|
14
14
|
"types": "./dist/index.d.ts",
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"src",
|
|
18
|
+
"android"
|
|
19
|
+
],
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@capacitor/core": "^7.6.1"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"@capacitor/core": "^7"
|
|
25
|
+
},
|
|
15
26
|
"capacitor": {
|
|
16
27
|
"android": {
|
|
17
28
|
"src": "android"
|
|
18
29
|
}
|
|
19
|
-
},
|
|
20
|
-
"peerDependencies": {
|
|
21
|
-
"@capacitor/core": "^7.4.4"
|
|
22
|
-
},
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"@capacitor/core": "^7.6.1"
|
|
25
30
|
}
|
|
26
31
|
}
|
package/src/Intent.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { registerPlugin } from "@capacitor/core";
|
|
2
|
-
import {
|
|
2
|
+
import type { PluginListenerHandle } from "@capacitor/core";
|
|
3
|
+
import type {
|
|
4
|
+
IntentPlugin,
|
|
5
|
+
IntentResult,
|
|
6
|
+
StartActivityForResultOptions,
|
|
7
|
+
StartActivityForResultResult,
|
|
8
|
+
} from "./IntentPlugin";
|
|
3
9
|
|
|
4
|
-
const
|
|
10
|
+
const intentPlugin = registerPlugin<IntentPlugin>("Intent", {
|
|
5
11
|
web: async () => {
|
|
6
12
|
const { IntentWeb } = await import("./web/IntentWeb");
|
|
7
13
|
return new IntentWeb();
|
|
@@ -9,13 +15,14 @@ const IntentPlugin = registerPlugin<IIntentPlugin>("Intent", {
|
|
|
9
15
|
});
|
|
10
16
|
|
|
11
17
|
/**
|
|
12
|
-
* Android
|
|
13
|
-
* -
|
|
18
|
+
* Android 인텐트 플러그인
|
|
19
|
+
* - 브로드캐스트 송수신, 실행 인텐트 조회
|
|
20
|
+
* - 산업용 디바이스 연동용 (바코드 스캐너, PDA 등)
|
|
14
21
|
*/
|
|
15
22
|
export abstract class Intent {
|
|
16
23
|
/**
|
|
17
|
-
*
|
|
18
|
-
* @returns 해제 함수
|
|
24
|
+
* 브로드캐스트 수신기 등록
|
|
25
|
+
* @returns 구독 해제 함수
|
|
19
26
|
*
|
|
20
27
|
* @example
|
|
21
28
|
* ```ts
|
|
@@ -24,29 +31,34 @@ export abstract class Intent {
|
|
|
24
31
|
* (result) => console.log(result.extras)
|
|
25
32
|
* );
|
|
26
33
|
*
|
|
27
|
-
* // 해제
|
|
34
|
+
* // 구독 해제
|
|
28
35
|
* unsub();
|
|
29
36
|
* ```
|
|
30
37
|
*/
|
|
31
38
|
static async subscribe(
|
|
32
39
|
filters: string[],
|
|
33
|
-
callback: (result:
|
|
40
|
+
callback: (result: IntentResult) => void,
|
|
34
41
|
): Promise<() => Promise<void>> {
|
|
35
|
-
const { id } = await
|
|
42
|
+
const { id } = await intentPlugin.subscribe({ filters }, (result) => {
|
|
43
|
+
// { id }만 포함된 초기 resolve를 필터링
|
|
44
|
+
if (result.action != null) {
|
|
45
|
+
callback(result);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
36
48
|
return async () => {
|
|
37
|
-
await
|
|
49
|
+
await intentPlugin.unsubscribe({ id });
|
|
38
50
|
};
|
|
39
51
|
}
|
|
40
52
|
|
|
41
53
|
/**
|
|
42
|
-
* 모든
|
|
54
|
+
* 모든 브로드캐스트 수신기 구독 해제
|
|
43
55
|
*/
|
|
44
56
|
static async unsubscribeAll(): Promise<void> {
|
|
45
|
-
await
|
|
57
|
+
await intentPlugin.unsubscribeAll();
|
|
46
58
|
}
|
|
47
59
|
|
|
48
60
|
/**
|
|
49
|
-
*
|
|
61
|
+
* 브로드캐스트 전송
|
|
50
62
|
*
|
|
51
63
|
* @example
|
|
52
64
|
* ```ts
|
|
@@ -59,32 +71,51 @@ export abstract class Intent {
|
|
|
59
71
|
* ```
|
|
60
72
|
*/
|
|
61
73
|
static async send(options: { action: string; extras?: Record<string, unknown> }): Promise<void> {
|
|
62
|
-
await
|
|
74
|
+
await intentPlugin.send(options);
|
|
63
75
|
}
|
|
64
76
|
|
|
65
77
|
/**
|
|
66
|
-
*
|
|
78
|
+
* 실행 인텐트 조회
|
|
67
79
|
*/
|
|
68
|
-
static async getLaunchIntent(): Promise<
|
|
69
|
-
return
|
|
80
|
+
static async getLaunchIntent(): Promise<IntentResult> {
|
|
81
|
+
return intentPlugin.getLaunchIntent();
|
|
70
82
|
}
|
|
71
83
|
|
|
72
84
|
/**
|
|
73
|
-
*
|
|
85
|
+
* 이벤트 리스너 등록
|
|
86
|
+
* @returns 리스너 핸들 (handle.remove()로 해제)
|
|
87
|
+
*/
|
|
88
|
+
static async addListener(
|
|
89
|
+
eventName: "newIntent",
|
|
90
|
+
callback: (result: IntentResult) => void,
|
|
91
|
+
): Promise<PluginListenerHandle> {
|
|
92
|
+
return intentPlugin.addListener(eventName, callback);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* 모든 이벤트 리스너 제거
|
|
97
|
+
*/
|
|
98
|
+
static async removeAllListeners(): Promise<void> {
|
|
99
|
+
await intentPlugin.removeAllListeners();
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* startActivityForResult로 외부 Activity를 실행하고 결과를 수신한다
|
|
74
104
|
*
|
|
75
105
|
* @example
|
|
76
106
|
* ```ts
|
|
77
107
|
* const result = await Intent.startActivityForResult({
|
|
78
|
-
* action: "
|
|
79
|
-
*
|
|
108
|
+
* action: "com.example.PAY",
|
|
109
|
+
* extras: { amount: 1000 },
|
|
80
110
|
* });
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
* console.log("Selected:", result.data);
|
|
111
|
+
* if (result.resultCode === -1) {
|
|
112
|
+
* // RESULT_OK
|
|
84
113
|
* }
|
|
85
114
|
* ```
|
|
86
115
|
*/
|
|
87
|
-
static async startActivityForResult(
|
|
88
|
-
|
|
116
|
+
static async startActivityForResult(
|
|
117
|
+
options: StartActivityForResultOptions,
|
|
118
|
+
): Promise<StartActivityForResultResult> {
|
|
119
|
+
return intentPlugin.startActivityForResult(options);
|
|
89
120
|
}
|
|
90
121
|
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { PluginListenerHandle } from "@capacitor/core";
|
|
2
|
+
|
|
3
|
+
export interface IntentResult {
|
|
4
|
+
/** 브로드캐스트 액션 */
|
|
5
|
+
action?: string;
|
|
6
|
+
/** 추가 데이터 */
|
|
7
|
+
extras?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface StartActivityForResultOptions {
|
|
11
|
+
action?: string;
|
|
12
|
+
uri?: string;
|
|
13
|
+
extras?: Record<string, unknown>;
|
|
14
|
+
/** MIME type */
|
|
15
|
+
type?: string;
|
|
16
|
+
/** 특정 앱 지정 */
|
|
17
|
+
packageName?: string;
|
|
18
|
+
/** 특정 Activity 지정 */
|
|
19
|
+
className?: string;
|
|
20
|
+
/** Intent flags */
|
|
21
|
+
flags?: number;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface StartActivityForResultResult {
|
|
25
|
+
resultCode: number;
|
|
26
|
+
data?: {
|
|
27
|
+
action?: string;
|
|
28
|
+
uri?: string;
|
|
29
|
+
extras?: Record<string, unknown>;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface IntentPlugin {
|
|
34
|
+
/**
|
|
35
|
+
* 브로드캐스트 수신기 등록
|
|
36
|
+
*/
|
|
37
|
+
subscribe(
|
|
38
|
+
options: { filters: string[] },
|
|
39
|
+
callback: (result: IntentResult) => void,
|
|
40
|
+
): Promise<{ id: string }>;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* 특정 브로드캐스트 수신기 구독 해제
|
|
44
|
+
*/
|
|
45
|
+
unsubscribe(options: { id: string }): Promise<void>;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* 모든 브로드캐스트 수신기 구독 해제
|
|
49
|
+
*/
|
|
50
|
+
unsubscribeAll(): Promise<void>;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 브로드캐스트 전송
|
|
54
|
+
*/
|
|
55
|
+
send(options: { action: string; extras?: Record<string, unknown> }): Promise<void>;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* 실행 인텐트 조회
|
|
59
|
+
*/
|
|
60
|
+
getLaunchIntent(): Promise<IntentResult>;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* 앱 실행 중 수신되는 새 인텐트에 대한 리스너 등록
|
|
64
|
+
*/
|
|
65
|
+
addListener(
|
|
66
|
+
eventName: "newIntent",
|
|
67
|
+
listenerFunc: (data: IntentResult) => void,
|
|
68
|
+
): Promise<PluginListenerHandle>;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* 모든 이벤트 리스너 제거
|
|
72
|
+
*/
|
|
73
|
+
removeAllListeners(): Promise<void>;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* startActivityForResult로 외부 Activity를 실행하고 결과를 수신한다
|
|
77
|
+
*/
|
|
78
|
+
startActivityForResult(
|
|
79
|
+
options: StartActivityForResultOptions,
|
|
80
|
+
): Promise<StartActivityForResultResult>;
|
|
81
|
+
}
|
package/src/index.ts
CHANGED