@apps-in-toss/web-framework 0.0.9 → 0.0.10
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/dist/chunk-CH3CIAIW.js +7688 -0
- package/dist/chunk-DI2VGQ6M.js +53 -0
- package/dist/chunk-HL7M3JLX.js +53 -0
- package/dist/chunk-I3ZDGLIW.js +19 -0
- package/dist/chunk-LJBVSTWE.js +7687 -0
- package/dist/chunk-TZCMTMV7.js +38 -0
- package/dist/cli/index.cjs +644 -0
- package/dist/cli/index.d.cts +2 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +51 -43
- package/dist/cli.cjs +560 -0
- package/dist/cli.d.cts +2 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +509 -0
- package/dist/closeView.d.ts +24 -0
- package/dist/config/index.cjs +7976 -0
- package/dist/config/index.d.cts +73 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.js +3 -0
- package/dist/fetchAlbumPhotos.d.ts +75 -0
- package/dist/fetchContacts.d.ts +92 -0
- package/dist/generateHapticFeedback.d.ts +52 -0
- package/dist/getClipboardText.d.ts +42 -0
- package/dist/getCurrentLocation.d.ts +109 -0
- package/dist/getDeviceId.d.ts +32 -0
- package/dist/getLocale.d.ts +31 -0
- package/dist/getNetworkStatus.d.ts +55 -0
- package/dist/getSchemeUri.d.ts +26 -0
- package/dist/index.cjs +18 -0
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +1 -0
- package/dist/openCamera.d.ts +75 -0
- package/dist/plugins/index.cjs +7682 -0
- package/dist/plugins/index.d.cts +15 -0
- package/dist/plugins/index.d.ts +15 -0
- package/dist/plugins/index.js +11 -0
- package/dist/prebuilt/dev.android.js +25 -13
- package/dist/prebuilt/dev.ios.js +25 -13
- package/dist/prebuilt/prod.android.js +1 -1
- package/dist/prebuilt/prod.ios.js +1 -1
- package/dist/prebuilt/prod.json +4 -4
- package/dist/setClipboardText.d.ts +34 -0
- package/dist/setScreenAwakeMode.d.ts +69 -0
- package/dist/setSecureScreen.d.ts +34 -0
- package/dist/share.d.ts +37 -0
- package/dist/startUpdateLocation.d.ts +151 -0
- package/package.json +4 -4
- package/src-web/appLogin.d.ts +4 -5
- package/src-web/closeView.d.ts +1 -2
- package/src-web/fetchAlbumPhotos.d.ts +1 -3
- package/src-web/fetchContacts.d.ts +1 -3
- package/src-web/generateHapticFeedback.d.ts +24 -27
- package/src-web/getClipboardText.d.ts +1 -3
- package/src-web/getCurrentLocation.d.ts +4 -6
- package/src-web/getDeviceId.d.ts +1 -2
- package/src-web/getLocale.d.ts +1 -2
- package/src-web/getNetworkStatus.d.ts +1 -2
- package/src-web/getOperationalEnvironment.d.ts +35 -0
- package/src-web/getPlatformOS.d.ts +28 -0
- package/src-web/getSchemeUri.d.ts +1 -2
- package/src-web/index.d.ts +2 -0
- package/src-web/index.js +1 -1
- package/src-web/openCamera.d.ts +1 -3
- package/src-web/setClipboardText.d.ts +1 -3
- package/src-web/setScreenAwakeMode.d.ts +1 -2
- package/src-web/setSecureScreen.d.ts +1 -2
- package/src-web/share.d.ts +1 -2
- package/src-web/startUpdateLocation.d.ts +3 -5
package/dist/prebuilt/prod.json
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
{
|
|
3
3
|
"platform": "ios",
|
|
4
4
|
"totalModuleCount": 359,
|
|
5
|
-
"duration":
|
|
6
|
-
"size":
|
|
5
|
+
"duration": 592.4103329999998,
|
|
6
|
+
"size": 130350
|
|
7
7
|
},
|
|
8
8
|
{
|
|
9
9
|
"platform": "android",
|
|
10
10
|
"totalModuleCount": 359,
|
|
11
|
-
"duration":
|
|
12
|
-
"size":
|
|
11
|
+
"duration": 592.6068340000002,
|
|
12
|
+
"size": 130086
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public
|
|
3
|
+
* @tag AppsInTossModule
|
|
4
|
+
* @category AppsInTossModules
|
|
5
|
+
* @kind function
|
|
6
|
+
* @name setClipboardText
|
|
7
|
+
* @description 텍스트를 클립보드에 복사해서 사용자가 다른 곳에 붙여 넣기 할 수 있어요.
|
|
8
|
+
* @param {Promise<void>} text - 클립보드에 복사할 텍스트예요. 문자열 형식으로 입력해요.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ### 텍스트를 클립보드에 복사하기
|
|
12
|
+
*
|
|
13
|
+
* ```tsx
|
|
14
|
+
*
|
|
15
|
+
* import { setClipboardText } from '@apps-in-toss/web-framework';
|
|
16
|
+
*
|
|
17
|
+
* // '복사' 버튼을 누르면 "복사할 텍스트"가 클립보드에 복사돼요.
|
|
18
|
+
* function CopyButton() {
|
|
19
|
+
* const handleCopy = async () => {
|
|
20
|
+
* try {
|
|
21
|
+
* await setClipboardText('복사할 텍스트');
|
|
22
|
+
* console.log('텍스트가 복사됐어요!');
|
|
23
|
+
* } catch (error) {
|
|
24
|
+
* console.error('텍스트 복사에 실패했어요:', error);
|
|
25
|
+
* }
|
|
26
|
+
* };
|
|
27
|
+
*
|
|
28
|
+
* return <input type="button" value="복사" onClick={handleCopy} />;
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function setClipboardText(text: string): Promise<void>;
|
|
33
|
+
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public
|
|
3
|
+
* @tag BedrockModule
|
|
4
|
+
* @category BedrockModules
|
|
5
|
+
* @kind function
|
|
6
|
+
* @name setScreenAwakeMode
|
|
7
|
+
* @description
|
|
8
|
+
* `setScreenAwakeMode` 함수는 화면이 항상 켜져 있도록 설정하거나 해제하는 기능을 제공해요.
|
|
9
|
+
* 이 기능은 웹툰, 동영상, 문서 읽기 등 화면을 지속해서 켜두어야 하는 상황에서 유용해요.
|
|
10
|
+
*
|
|
11
|
+
* `enabled` 옵션을 `true`로 설정하면 화면이 꺼지지 않게 유지하고, `false`로 설정하면 기본 화면 보호기 시간에 따라 화면이 꺼져요. 특히, 이 함수는 앱 전체에 영향을 미치므로 특정 화면에서만 사용하려면 화면을 벗어날 때 이전 상태로 복구하는 추가 작업이 필요해요.
|
|
12
|
+
*
|
|
13
|
+
* 예를 들어, 미디어 콘텐츠 감상 화면에서는 항상 켜짐 모드를 활성화하고, 화면을 떠날 때 설정을 복구해서 불필요한 배터리 소모를 방지할 수 있어요.
|
|
14
|
+
*
|
|
15
|
+
* 다만, 앱에서 벗어나는 상황에서는 항상 켜짐 모드가 비활성화될 수 있으니 주의해야 해요.
|
|
16
|
+
*
|
|
17
|
+
* @param {object} options 화면 항상 켜짐 모드의 설정 값이에요.
|
|
18
|
+
* @param {boolean} options.enabled 화면 항상 켜짐 모드를 켜거나 끄는 옵션이에요.
|
|
19
|
+
* `true`로 설정하면 화면이 항상 켜지고, `false`로 설정하면 화면 보호기 시간에 따라 꺼져요.
|
|
20
|
+
*
|
|
21
|
+
* @returns {object} 현재 화면 항상 켜짐 모드의 설정 상태를 반환해요.
|
|
22
|
+
* @returns {boolean} enabled 화면 항상 켜짐 모드가 켜져 있는지 여부를 나타내는 값이에요.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ### 화면 항상 켜짐 모드 설정하기
|
|
26
|
+
*
|
|
27
|
+
* ```tsx
|
|
28
|
+
*
|
|
29
|
+
* import { setScreenAwakeMode } from '@apps-in-toss/web-framework';
|
|
30
|
+
*
|
|
31
|
+
* function SetScreenAwakeMode() {
|
|
32
|
+
* return (
|
|
33
|
+
* <input type="button"
|
|
34
|
+
* value="화면 항상 켜기"
|
|
35
|
+
* onClick={() => {
|
|
36
|
+
* setScreenAwakeMode({ enabled: true });
|
|
37
|
+
* }}
|
|
38
|
+
* />
|
|
39
|
+
* );
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* ### 화면 항상 켜짐 모드 복구하기
|
|
44
|
+
* 특정 화면을 벗어날 때 이전 상태로 복구하려면 다음과 같이 `useEffect`를 사용하세요.
|
|
45
|
+
*
|
|
46
|
+
* ```tsx
|
|
47
|
+
* import { useEffect } from 'react';
|
|
48
|
+
* import { setScreenAwakeMode, cleanUp } from '@apps-in-toss/web-framework';
|
|
49
|
+
*
|
|
50
|
+
* function MediaScreen() {
|
|
51
|
+
* useEffect(() => {
|
|
52
|
+
* setScreenAwakeMode({ enabled: true });
|
|
53
|
+
*
|
|
54
|
+
* return () => {
|
|
55
|
+
* setScreenAwakeMode({ enabled: false }); // 설정을 이전 상태로 복구해요.
|
|
56
|
+
* };
|
|
57
|
+
* }, []);
|
|
58
|
+
*
|
|
59
|
+
* return <span>미디어 콘텐츠를 감상하는 화면</span>;
|
|
60
|
+
* }
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function setScreenAwakeMode(options: {
|
|
64
|
+
enabled: boolean;
|
|
65
|
+
}): Promise<{
|
|
66
|
+
enabled: boolean;
|
|
67
|
+
}>;
|
|
68
|
+
|
|
69
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public
|
|
3
|
+
* @name setSecureScreen
|
|
4
|
+
* @tag BedrockModule
|
|
5
|
+
* @category BedrockModules
|
|
6
|
+
* @kind function
|
|
7
|
+
* @description
|
|
8
|
+
* 화면 캡쳐를 차단해서 민감한 정보가 유출되지 않도록 보호하거나, 필요할 경우 캡쳐를 허용하도록 설정해요. 예를 들어 보안이 중요한 화면에서 사용할 수 있어요.
|
|
9
|
+
*
|
|
10
|
+
* @param {object} options 화면 캡쳐 설정 옵션이에요.
|
|
11
|
+
* @param {boolean} options.enabled 화면 캡쳐를 차단할지 여부를 설정해요. `true`면 캡쳐를 차단하고, `false`면 허용해요.
|
|
12
|
+
* @returns {enabled: boolean} 현재 설정된 캡쳐 차단 상태를 반환해요.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ### 캡쳐 허용 상태 변경하기
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
*
|
|
19
|
+
* import { setSecureScreen } from '@apps-in-toss/web-framework';
|
|
20
|
+
*
|
|
21
|
+
* function SetSecureScreen() {
|
|
22
|
+
* return <input type="button" value="캡쳐 막기" onClick={async () => {
|
|
23
|
+
* await setSecureScreen({ enabled: true });
|
|
24
|
+
* }} />;
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function setSecureScreen(options: {
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
}): Promise<{
|
|
31
|
+
enabled: boolean;
|
|
32
|
+
}>;
|
|
33
|
+
|
|
34
|
+
export {};
|
package/dist/share.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public
|
|
3
|
+
* @tag BedrockModule
|
|
4
|
+
* @category BedrockModules
|
|
5
|
+
* @kind function
|
|
6
|
+
* @name share
|
|
7
|
+
* @description
|
|
8
|
+
* 사용자가 콘텐츠를 다른 사람과 공유할 수 있도록 네이티브 공유 시트를 표시해요.
|
|
9
|
+
* `options.message` 속성에 공유할 메시지를 전달하면, 사용자가 선택할 수 있는 앱 목록이 표시돼요.
|
|
10
|
+
* 예를 들어, 사용자가 텍스트 메시지를 공유하거나 메모 앱에 저장하려고 할 때 유용해요.
|
|
11
|
+
* @param {object} options - 공유할 메시지를 담은 객체예요.
|
|
12
|
+
* @param {string} options.message - 공유할 텍스트 문자열이에요. 예를 들어, "안녕하세요! 이 내용을 공유합니다."
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ### 공유하기 기능 구현하기
|
|
16
|
+
*
|
|
17
|
+
* 아래는 버튼을 클릭하면 메시지를 공유하는 간단한 예제예요.
|
|
18
|
+
*
|
|
19
|
+
* ```tsx
|
|
20
|
+
* import { share } from '@apps-in-toss/web-framework';
|
|
21
|
+
*
|
|
22
|
+
*
|
|
23
|
+
* function MyPage() {
|
|
24
|
+
* return (
|
|
25
|
+
* <input type="button"
|
|
26
|
+
* value="공유"
|
|
27
|
+
* onClick={() => share({ message: '공유할 메시지입니다.' })}
|
|
28
|
+
* />
|
|
29
|
+
* );
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function share(message: {
|
|
34
|
+
message: string;
|
|
35
|
+
}): Promise<void>;
|
|
36
|
+
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
export interface EventEmitterSchema<K extends string, P extends unknown[]> {
|
|
4
|
+
name: K;
|
|
5
|
+
params: P;
|
|
6
|
+
}
|
|
7
|
+
declare enum Accuracy {
|
|
8
|
+
/**
|
|
9
|
+
* 오차범위 3KM 이내
|
|
10
|
+
*/
|
|
11
|
+
Lowest = 1,
|
|
12
|
+
/**
|
|
13
|
+
* 오차범위 1KM 이내
|
|
14
|
+
*/
|
|
15
|
+
Low,
|
|
16
|
+
/**
|
|
17
|
+
* 오차범위 몇 백미터 이내
|
|
18
|
+
*/
|
|
19
|
+
Balanced,
|
|
20
|
+
/**
|
|
21
|
+
* 오차범위 10M 이내
|
|
22
|
+
*/
|
|
23
|
+
High,
|
|
24
|
+
/**
|
|
25
|
+
* 가장 높은 정확도
|
|
26
|
+
*/
|
|
27
|
+
Highest,
|
|
28
|
+
/**
|
|
29
|
+
* 네비게이션을 위한 최고 정확도
|
|
30
|
+
*/
|
|
31
|
+
BestForNavigation
|
|
32
|
+
}
|
|
33
|
+
export interface Location {
|
|
34
|
+
/**
|
|
35
|
+
* Android에서만 지원하는 옵션이에요.
|
|
36
|
+
*
|
|
37
|
+
* - `FINE`: 정확한 위치
|
|
38
|
+
* - `COARSE`: 대략적인 위치
|
|
39
|
+
*
|
|
40
|
+
* @see https://developer.android.com/codelabs/approximate-location
|
|
41
|
+
*/
|
|
42
|
+
accessLocation?: "FINE" | "COARSE";
|
|
43
|
+
/**
|
|
44
|
+
* 위치가 업데이트된 시점의 유닉스 타임스탬프예요.
|
|
45
|
+
*/
|
|
46
|
+
timestamp: number;
|
|
47
|
+
coords: {
|
|
48
|
+
latitude: number; // 위도
|
|
49
|
+
longitude: number; // 경도
|
|
50
|
+
altitude: number; // 높이
|
|
51
|
+
accuracy: number; // 위치 정확도 (미터)
|
|
52
|
+
altitudeAccuracy: number; // 고도 정확도 (미터)
|
|
53
|
+
heading: number; // 방향 (북: 0°, 동: 90°, 남: 180°, 서: 270°)
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export interface StartUpdateLocationOptions {
|
|
57
|
+
/**
|
|
58
|
+
* 위치 정확도를 설정해요.
|
|
59
|
+
*/
|
|
60
|
+
accuracy: Accuracy;
|
|
61
|
+
/**
|
|
62
|
+
* 위치 업데이트 주기를 밀리초(ms) 단위로 설정해요.
|
|
63
|
+
*/
|
|
64
|
+
timeInterval: number;
|
|
65
|
+
/**
|
|
66
|
+
* 위치 변경 거리를 미터(m) 단위로 설정해요.
|
|
67
|
+
*/
|
|
68
|
+
distanceInterval: number;
|
|
69
|
+
}
|
|
70
|
+
export interface StartUpdateLocationSubscription extends EmitterSubscription {
|
|
71
|
+
remove: () => Promise<void>;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @name UpdateLocationEventEmitter
|
|
75
|
+
* @kind typedef
|
|
76
|
+
* @description
|
|
77
|
+
* 디바이스의 위치 정보 변경을 감지해요
|
|
78
|
+
* @extends {EventEmitterSchema<'updateLocation', [Location]>}
|
|
79
|
+
*/
|
|
80
|
+
export interface UpdateLocationEventEmitter extends EventEmitterSchema<"updateLocation", [
|
|
81
|
+
Location
|
|
82
|
+
]> {
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* @public
|
|
86
|
+
* @tag AppsInTossModule
|
|
87
|
+
* @category AppsInTossModules
|
|
88
|
+
* @kind function
|
|
89
|
+
* @name startUpdateLocation
|
|
90
|
+
* @description 디바이스의 위치 정보를 지속적으로 감지하고, 위치가 변경되면 콜백을 실행하는 함수예요. 콜백 함수를 등록하면 위치가 변경될 때마다 자동으로 호출돼요.
|
|
91
|
+
* 실시간 위치 추적이 필요한 기능을 구현할 때 사용할 수 있어요. 예를 들어 지도 앱에서 사용자의 현재 위치를 실시간으로 업데이트할 때, 운동 앱에서 사용자의 이동 거리를 기록할 때 등이에요.
|
|
92
|
+
* 위치 업데이트 주기와 정확도를 조정해 배터리 소모를 최소화하면서도 필요한 정보를 얻을 수 있어요.
|
|
93
|
+
*
|
|
94
|
+
* @param {StartUpdateLocationOptions} options - 위치 정보 감지에 필요한 설정 객체에요.
|
|
95
|
+
* @param {number} [options.accuracy] 위치 정확도를 설정해요.
|
|
96
|
+
* @param {number} [options.timeInterval] 위치 정보를 업데이트하는 최소 주기로, 단위는 밀리초(ms)예요. 이 값은 위치 업데이트가 발생하는 가장 짧은 간격을 설정하지만, 시스템이나 환경의 영향을 받아 지정한 주기보다 더 긴 간격으로 업데이트될 수 있어요.
|
|
97
|
+
* @param {number} [options.distanceInterval] 위치 변경 거리를 미터(m) 단위로 설정해요.
|
|
98
|
+
* @param {(location: Location) => void} [options.callback] 위치 정보가 변경될 때 호출되는 콜백 함수예요.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ### 위치 정보 변경 감지하기
|
|
102
|
+
*
|
|
103
|
+
* ```tsx
|
|
104
|
+
* import React, { useState, useEffect } from 'react';
|
|
105
|
+
*
|
|
106
|
+
* import { startUpdateLocation } from '@apps-in-toss/web-framework';
|
|
107
|
+
*
|
|
108
|
+
* // 위치 정보 변경 감지하기
|
|
109
|
+
* function LocationWatcher() {
|
|
110
|
+
* const [location, setLocation] = useState(null);
|
|
111
|
+
*
|
|
112
|
+
* useEffect(() => {
|
|
113
|
+
* return startUpdateLocation({
|
|
114
|
+
* options: {
|
|
115
|
+
* accuracy: Accuracy.Default,
|
|
116
|
+
* timeInterval: 3000,
|
|
117
|
+
* distanceInterval: 10,
|
|
118
|
+
* },
|
|
119
|
+
* onEvent: (location) => {
|
|
120
|
+
* setLocation(location);
|
|
121
|
+
* },
|
|
122
|
+
* onError: (error) => {
|
|
123
|
+
* console.error('위치 정보를 가져오는데 실패했어요:', error);
|
|
124
|
+
* },
|
|
125
|
+
* });
|
|
126
|
+
* }, []);
|
|
127
|
+
*
|
|
128
|
+
* if (location == null) {
|
|
129
|
+
* return <span>위치 정보를 가져오는 중이에요...</span>;
|
|
130
|
+
* }
|
|
131
|
+
*
|
|
132
|
+
* return (
|
|
133
|
+
* <div>
|
|
134
|
+
* <span>위도: {location.coords.latitude}</span>
|
|
135
|
+
* <span>경도: {location.coords.longitude}</span>
|
|
136
|
+
* <span>위치 정확도: {location.coords.accuracy}m</span>
|
|
137
|
+
* <span>높이: {location.coords.altitude}m</span>
|
|
138
|
+
* <span>고도 정확도: {location.coords.altitudeAccuracy}m</span>
|
|
139
|
+
* <span>방향: {location.coords.heading}°</span>
|
|
140
|
+
* </div>
|
|
141
|
+
* );
|
|
142
|
+
* }
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export declare function startUpdateLocation(eventParams: {
|
|
146
|
+
onEvent: (response: Location) => void;
|
|
147
|
+
onError: (error: unknown) => void;
|
|
148
|
+
options: StartUpdateLocationOptions;
|
|
149
|
+
}): () => void;
|
|
150
|
+
|
|
151
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apps-in-toss/web-framework",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.10",
|
|
5
5
|
"description": "Web Framework for Apps In Toss",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"prepack": "yarn build",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"config.d.ts"
|
|
51
51
|
],
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@apps-in-toss/framework": "0.0.
|
|
53
|
+
"@apps-in-toss/framework": "0.0.10",
|
|
54
54
|
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
55
55
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
|
|
56
56
|
"@babel/plugin-proposal-numeric-separator": "^7.16.7",
|
|
@@ -95,11 +95,11 @@
|
|
|
95
95
|
"zod": "^3.24.1"
|
|
96
96
|
},
|
|
97
97
|
"dependencies": {
|
|
98
|
-
"@apps-in-toss/cli": "0.0.
|
|
98
|
+
"@apps-in-toss/cli": "0.0.10",
|
|
99
99
|
"@babel/core": "7.23.9"
|
|
100
100
|
},
|
|
101
101
|
"publishConfig": {
|
|
102
102
|
"access": "public"
|
|
103
103
|
},
|
|
104
|
-
"gitHead": "
|
|
104
|
+
"gitHead": "b5d671eb92caf922f31f73836dbb4b409a563e8a"
|
|
105
105
|
}
|
package/src-web/appLogin.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @public
|
|
3
|
-
* @
|
|
4
|
-
* @category AppsInTossModules
|
|
5
|
-
* @kind function
|
|
3
|
+
* @category 로그인
|
|
6
4
|
* @name appLogin
|
|
7
5
|
* @description 토스 인증으로 로그인해요. 로그인이 완료되면 다시 토스 앱으로 이동해요.
|
|
8
6
|
* @example
|
|
@@ -15,9 +13,9 @@
|
|
|
15
13
|
*
|
|
16
14
|
* function Page() {
|
|
17
15
|
* const handleLogin = async () => {
|
|
18
|
-
* const { authorizationCode } = await appLogin();
|
|
16
|
+
* const { authorizationCode, referrer } = await appLogin();
|
|
19
17
|
*
|
|
20
|
-
* // 획득한 인가 코드(`authorizationCode`)
|
|
18
|
+
* // 획득한 인가 코드(`authorizationCode`)와 `referrer`를 서버로 전달해요.
|
|
21
19
|
* }
|
|
22
20
|
*
|
|
23
21
|
* return <input type="button" value="로그인" onClick={handleLogin} />;
|
|
@@ -26,6 +24,7 @@
|
|
|
26
24
|
*/
|
|
27
25
|
export declare function appLogin(): Promise<{
|
|
28
26
|
authorizationCode: string;
|
|
27
|
+
referrer: "DEFAULT" | "SANDBOX";
|
|
29
28
|
}>;
|
|
30
29
|
|
|
31
30
|
export {};
|
package/src-web/closeView.d.ts
CHANGED
|
@@ -9,9 +9,7 @@ export interface ContactEntity {
|
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* @public
|
|
12
|
-
* @
|
|
13
|
-
* @category AppsInTossModules
|
|
14
|
-
* @kind function
|
|
12
|
+
* @category 연락처
|
|
15
13
|
* @name fetchContacts
|
|
16
14
|
* @description 사용자의 연락처 목록을 페이지 단위로 가져오는 함수예요.
|
|
17
15
|
* @param size - 한 번에 가져올 연락처 개수예요. 예를 들어, 10을 전달하면 최대 10개의 연락처를 가져와요.
|
|
@@ -1,38 +1,35 @@
|
|
|
1
1
|
export type HapticFeedbackType = "tickWeak" | "tap" | "tickMedium" | "softMedium" | "basicWeak" | "basicMedium" | "success" | "error" | "wiggle" | "confetti";
|
|
2
2
|
/**
|
|
3
|
-
* @public
|
|
4
|
-
* @
|
|
5
|
-
* @
|
|
6
|
-
* @
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* | "
|
|
12
|
-
* | "
|
|
13
|
-
* | "
|
|
14
|
-
* | "
|
|
15
|
-
* | "
|
|
16
|
-
* | "
|
|
17
|
-
* | "
|
|
18
|
-
* | "
|
|
19
|
-
* | "
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* @typedef {
|
|
23
|
-
*
|
|
24
|
-
|
|
25
|
-
*/
|
|
3
|
+
* @public
|
|
4
|
+
* @category 인터렉션
|
|
5
|
+
* @name HapticFeedbackOptions
|
|
6
|
+
* @description
|
|
7
|
+
* generateHapticFeedback 함수에 전달할 햅틱진동의 타입을 나타내요. 진동타입의 종류는 다음과 같아요.
|
|
8
|
+
* ```typescript
|
|
9
|
+
* type HapticFeedbackType =
|
|
10
|
+
* | "tickWeak"
|
|
11
|
+
* | "tap"
|
|
12
|
+
* | "tickMedium"
|
|
13
|
+
* | "softMedium"
|
|
14
|
+
* | "basicWeak"
|
|
15
|
+
* | "basicMedium"
|
|
16
|
+
* | "success"
|
|
17
|
+
* | "error"
|
|
18
|
+
* | "wiggle"
|
|
19
|
+
* | "confetti";
|
|
20
|
+
* ```
|
|
21
|
+
* @typedef { type: HapticFeedbackType } HapticFeedbackOptions
|
|
22
|
+
* @typedef { "tickWeak" | "tap" | "tickMedium" | "softMedium" | "basicWeak" | "basicMedium" | "success" | "error" | "wiggle" | "confetti" } HapticFeedbackType
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
26
25
|
export interface HapticFeedbackOptions {
|
|
27
26
|
type: HapticFeedbackType;
|
|
28
27
|
}
|
|
29
28
|
/**
|
|
30
29
|
* @public
|
|
31
|
-
* @
|
|
32
|
-
* @category BedrockModules
|
|
33
|
-
* @kind function
|
|
30
|
+
* @category 인터렉션
|
|
34
31
|
* @name generateHapticFeedback
|
|
35
|
-
* @description 디바이스에 햅틱 진동을 일으키는 함수예요. 예를 들어, 버튼 터치나 화면전환에 드라마틱한 효과를 주고 싶을 때 사용할 수 있어요. [HapticFeedbackOptions](
|
|
32
|
+
* @description 디바이스에 햅틱 진동을 일으키는 함수예요. 예를 들어, 버튼 터치나 화면전환에 드라마틱한 효과를 주고 싶을 때 사용할 수 있어요. [HapticFeedbackOptions](/reference/@apps-in-toss/web-framework/인터렉션/HapticFeedbackOptions.html)에서 진동타입을 확인해 보세요.
|
|
36
33
|
* @returns {void}
|
|
37
34
|
*
|
|
38
35
|
* @example
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @public
|
|
3
|
-
* @
|
|
4
|
-
* @category AppsInTossModules
|
|
5
|
-
* @kind function
|
|
3
|
+
* @category 클립보드
|
|
6
4
|
* @name getClipboardText
|
|
7
5
|
* @description 클립보드에 저장된 텍스트를 가져오는 함수예요. 복사된 텍스트를 읽어서 다른 작업에 활용할 수 있어요.
|
|
8
6
|
* @returns {Promise<string>} - 클립보드에 저장된 텍스트를 반환해요. 클립보드에 텍스트가 없으면 빈 문자열을 반환해요.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @public
|
|
3
|
-
* @category
|
|
3
|
+
* @category 위치 정보
|
|
4
4
|
* @name Accuracy
|
|
5
5
|
* @description 위치 정확도 옵션이에요.
|
|
6
6
|
*/
|
|
@@ -32,7 +32,7 @@ export enum Accuracy {
|
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* @public
|
|
35
|
-
* @category
|
|
35
|
+
* @category 위치 정보
|
|
36
36
|
* @name Location
|
|
37
37
|
* @description 위치 정보를 나타내는 객체예요.
|
|
38
38
|
*/
|
|
@@ -57,7 +57,7 @@ export interface Location {
|
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* @public
|
|
60
|
-
* @category
|
|
60
|
+
* @category 위치 정보
|
|
61
61
|
* @name LocationCoords
|
|
62
62
|
* @description 세부 위치 정보를 나타내는 객체예요.
|
|
63
63
|
*/
|
|
@@ -95,9 +95,7 @@ export interface GetCurrentLocationOptions {
|
|
|
95
95
|
}
|
|
96
96
|
/**
|
|
97
97
|
* @public
|
|
98
|
-
* @
|
|
99
|
-
* @category AppsInTossModules
|
|
100
|
-
* @kind function
|
|
98
|
+
* @category 위치 정보
|
|
101
99
|
* @name getCurrentLocation
|
|
102
100
|
* @description 디바이스의 현재 위치 정보를 가져오는 함수예요.
|
|
103
101
|
* 위치 기반 서비스를 구현할 때 사용되고, 한 번만 호출되어 현재 위치를 즉시 반환해요.
|
package/src-web/getDeviceId.d.ts
CHANGED
package/src-web/getLocale.d.ts
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public
|
|
3
|
+
* @category 환경 확인
|
|
4
|
+
* @kind function
|
|
5
|
+
* @name getOperationalEnvironment
|
|
6
|
+
* @description
|
|
7
|
+
* 현재 실행 중인 앱의 운영 환경을 확인해요.
|
|
8
|
+
* 토스 앱에서 실행 중이라면 `'toss'`, 샌드박스 환경에서 실행 중이라면 `'sandbox'`를 반환해요.
|
|
9
|
+
*
|
|
10
|
+
* 운영 환경은 앱이 실행되는 컨텍스트를 의미하며, 특정 기능의 사용 가능 여부를 판단하는 데 활용할 수 있어요.
|
|
11
|
+
*
|
|
12
|
+
* @returns {'toss' | 'sandbox'}
|
|
13
|
+
* 현재 운영 환경을 나타내는 문자열이에요.
|
|
14
|
+
* - `'toss'`: 토스 앱에서 실행 중이에요.
|
|
15
|
+
* - `'sandbox'`: 샌드박스 환경에서 실행 중이에요.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ### 현재 운영 환경 확인하기
|
|
19
|
+
*
|
|
20
|
+
* ```tsx
|
|
21
|
+
* import { getOperationalEnvironment } from '@apps-in-toss/web-framework';
|
|
22
|
+
*
|
|
23
|
+
*
|
|
24
|
+
* function EnvironmentInfo() {
|
|
25
|
+
* const environment = getOperationalEnvironment();
|
|
26
|
+
*
|
|
27
|
+
* return (
|
|
28
|
+
* <span>현재 운영 환경: {environment}</span>
|
|
29
|
+
* );
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function getOperationalEnvironment(): "toss" | "sandbox";
|
|
34
|
+
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public
|
|
3
|
+
* @kind function
|
|
4
|
+
* @category 환경 확인
|
|
5
|
+
*
|
|
6
|
+
* @name getPlatformOS
|
|
7
|
+
* @signature
|
|
8
|
+
* ```typescript
|
|
9
|
+
* function getPlatformOS(): 'ios' | 'android';
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @description
|
|
13
|
+
* 현재 실행 중인 플랫폼을 확인하는 함수예요.
|
|
14
|
+
* 이 함수는 `react-native`의 `Platform.OS` 값을 기반으로 동작하며, `ios` 또는 `android` 중 하나의 문자열을 반환해요.
|
|
15
|
+
*
|
|
16
|
+
* @returns 현재 플랫폼을 나타내는 문자열로, `'ios'` 또는 `'android'` 중 하나예요.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { getPlatformOS } from '@apps-in-toss/web-framework';
|
|
21
|
+
*
|
|
22
|
+
* const platform = getPlatformOS();
|
|
23
|
+
* console.log(`현재 플랫폼: ${platform}`);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function getPlatformOS(): "ios" | "android";
|
|
27
|
+
|
|
28
|
+
export {};
|