@apps-in-toss/web-framework 0.0.0-dev.1742871497217 → 0.0.0-dev.1742896938983
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/cli/chunk-EXHALAXL.js +173587 -0
- package/dist/cli/chunk-MTTRU5WU.js +63 -0
- package/dist/cli/lib-ZQFUOOU5.js +1007 -0
- package/dist/cli/typescript-OMXIAERO.js +6 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +124 -0
- package/dist/prebuilt/dev.android.js +491 -469
- package/dist/prebuilt/dev.ios.js +492 -470
- package/dist/prebuilt/prod.android.js +1 -1
- package/dist/prebuilt/prod.ios.js +1 -1
- package/dist/prebuilt/prod.json +4 -4
- package/{src-web/index.d.ts → dist-web/bridge.d.ts} +2 -0
- package/dist-web/bridge.js +1 -0
- package/dist-web/checkoutPayment.d.ts +125 -0
- package/dist-web/closeView.d.ts +1 -0
- package/dist-web/executePayment.d.ts +266 -0
- package/dist-web/generateHapticFeedback.d.ts +1 -0
- package/dist-web/getDeviceId.d.ts +1 -0
- package/dist-web/getLocale.d.ts +1 -0
- package/dist-web/getNetworkStatus.d.ts +1 -0
- package/dist-web/getPlatformOS.d.ts +1 -0
- package/dist-web/getSchemeUri.d.ts +1 -0
- package/dist-web/index.d.ts +70 -0
- package/dist-web/index.js +150 -0
- package/dist-web/setScreenAwakeMode.d.ts +1 -0
- package/dist-web/setSecureScreen.d.ts +1 -0
- package/dist-web/share.d.ts +1 -0
- package/package.json +15 -16
- package/src-web/closeView.d.ts +0 -23
- package/src-web/generateHapticFeedback.d.ts +0 -49
- package/src-web/getDeviceId.d.ts +0 -31
- package/src-web/getLocale.d.ts +0 -30
- package/src-web/getNetworkStatus.d.ts +0 -54
- package/src-web/getPlatformOS.d.ts +0 -35
- package/src-web/getSchemeUri.d.ts +0 -25
- package/src-web/index.js +0 -1
- package/src-web/setScreenAwakeMode.d.ts +0 -68
- package/src-web/setSecureScreen.d.ts +0 -33
- package/src-web/share.d.ts +0 -36
- /package/{src-web → dist-web}/appLogin.d.ts +0 -0
- /package/{src-web → dist-web}/fetchAlbumPhotos.d.ts +0 -0
- /package/{src-web → dist-web}/fetchContacts.d.ts +0 -0
- /package/{src-web → dist-web}/getClipboardText.d.ts +0 -0
- /package/{src-web → dist-web}/getCurrentLocation.d.ts +0 -0
- /package/{src-web → dist-web}/getOperationalEnvironment.d.ts +0 -0
- /package/{src-web → dist-web}/openCamera.d.ts +0 -0
- /package/{src-web → dist-web}/setClipboardText.d.ts +0 -0
- /package/{src-web → dist-web}/startUpdateLocation.d.ts +0 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
export * from './bridge.js'
|
|
2
|
+
|
|
3
|
+
// src-web/nativeWindow.ts
|
|
4
|
+
var NativeWindow = class {
|
|
5
|
+
get _window() {
|
|
6
|
+
return window;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* ReactNativeWebView를 이용해 메시지를 전송합니다.
|
|
10
|
+
* @param message 전송할 메시지(JSON 문자열)
|
|
11
|
+
* @example
|
|
12
|
+
* const nativeWindow = new NativeWindow();
|
|
13
|
+
* nativeWindow.postMessage(JSON.stringify({ type: 'method', functionName: 'getDeviceId' }));
|
|
14
|
+
*/
|
|
15
|
+
postMessage(message) {
|
|
16
|
+
const webView = this._window.ReactNativeWebView;
|
|
17
|
+
if (!webView) {
|
|
18
|
+
throw new Error("ReactNativeWebView is not available in browser environment");
|
|
19
|
+
}
|
|
20
|
+
webView.postMessage(message);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* __BEDROCK_NATIVE_EMITTER를 이용해 이벤트 리스너를 등록합니다.
|
|
24
|
+
* @param event 이벤트 이름
|
|
25
|
+
* @param callback 데이터가 도착했을 때 호출되는 콜백
|
|
26
|
+
* @returns 리스너 해제 함수
|
|
27
|
+
* @example
|
|
28
|
+
* const nativeWindow = new NativeWindow();
|
|
29
|
+
* const unsubscribe = nativeWindow.on('deviceInfo', (data) => {
|
|
30
|
+
* console.log('Device info received:', data);
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* // 리스너 해제
|
|
34
|
+
* unsubscribe();
|
|
35
|
+
*/
|
|
36
|
+
on(event, callback) {
|
|
37
|
+
const emitter = this._window.__BEDROCK_NATIVE_EMITTER;
|
|
38
|
+
if (!emitter) {
|
|
39
|
+
throw new Error("__BEDROCK_NATIVE_EMITTER is not available");
|
|
40
|
+
}
|
|
41
|
+
return emitter.on(event, callback);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* __CONSTANT_HANDLER_MAP에 등록된 상수 값을 반환합니다.
|
|
45
|
+
* @param method 상수 핸들러 이름
|
|
46
|
+
* @returns 상수 값
|
|
47
|
+
* @example
|
|
48
|
+
* const nativeWindow = new NativeWindow();
|
|
49
|
+
* const deviceId = nativeWindow.getConstant('getDeviceId');
|
|
50
|
+
* console.log('Device ID:', deviceId);
|
|
51
|
+
*/
|
|
52
|
+
getConstant(method) {
|
|
53
|
+
const constantHandlerMap = this._window.__CONSTANT_HANDLER_MAP;
|
|
54
|
+
if (constantHandlerMap && method in constantHandlerMap) {
|
|
55
|
+
return constantHandlerMap[method];
|
|
56
|
+
}
|
|
57
|
+
throw new Error(`${method} is not a constant handler`);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
var nativeWindow = new NativeWindow();
|
|
61
|
+
var createEventId = () => Math.random().toString(36).substring(2, 15);
|
|
62
|
+
var deserializeError = (value) => {
|
|
63
|
+
if (value && value.__isError) {
|
|
64
|
+
const err = new Error(value.message);
|
|
65
|
+
err.name = value.name;
|
|
66
|
+
err.stack = value.stack;
|
|
67
|
+
return err;
|
|
68
|
+
}
|
|
69
|
+
return value;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// src-web/createAsyncBridge.ts
|
|
73
|
+
function createAsyncBridge(method) {
|
|
74
|
+
return (args) => {
|
|
75
|
+
const eventId = createEventId();
|
|
76
|
+
const emitters = [];
|
|
77
|
+
const unsubscribe = () => {
|
|
78
|
+
for (const remove of emitters) {
|
|
79
|
+
remove();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
return new Promise((resolve, reject) => {
|
|
83
|
+
emitters.push(
|
|
84
|
+
nativeWindow.on(`${method}/resolve/${eventId}`, (data) => {
|
|
85
|
+
unsubscribe();
|
|
86
|
+
resolve(data);
|
|
87
|
+
})
|
|
88
|
+
);
|
|
89
|
+
emitters.push(
|
|
90
|
+
nativeWindow.on(`${method}/reject/${eventId}`, (error) => {
|
|
91
|
+
unsubscribe();
|
|
92
|
+
reject(deserializeError(error));
|
|
93
|
+
})
|
|
94
|
+
);
|
|
95
|
+
nativeWindow.postMessage(
|
|
96
|
+
JSON.stringify({
|
|
97
|
+
type: "method",
|
|
98
|
+
functionName: method,
|
|
99
|
+
eventId,
|
|
100
|
+
args: [args]
|
|
101
|
+
})
|
|
102
|
+
);
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// src-web/createConstantBridge.ts
|
|
108
|
+
function createConstantBridge(method) {
|
|
109
|
+
return () => {
|
|
110
|
+
return nativeWindow.getConstant(method);
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// src-web/createEventBridge.ts
|
|
115
|
+
function createEventBridge(method) {
|
|
116
|
+
return (args) => {
|
|
117
|
+
const eventId = createEventId();
|
|
118
|
+
const removes = [
|
|
119
|
+
nativeWindow.on(`${method}/onEvent/${eventId}`, (data) => {
|
|
120
|
+
args.onEvent(data);
|
|
121
|
+
}),
|
|
122
|
+
nativeWindow.on(`${method}/onError/${eventId}`, (error) => {
|
|
123
|
+
args.onError(deserializeError(error));
|
|
124
|
+
})
|
|
125
|
+
];
|
|
126
|
+
nativeWindow.postMessage(
|
|
127
|
+
JSON.stringify({
|
|
128
|
+
type: "addEventListener",
|
|
129
|
+
functionName: method,
|
|
130
|
+
eventId,
|
|
131
|
+
args: args.options
|
|
132
|
+
})
|
|
133
|
+
);
|
|
134
|
+
return () => {
|
|
135
|
+
nativeWindow.postMessage(
|
|
136
|
+
JSON.stringify({
|
|
137
|
+
type: "removeEventListener",
|
|
138
|
+
functionName: method,
|
|
139
|
+
eventId
|
|
140
|
+
})
|
|
141
|
+
);
|
|
142
|
+
removes.forEach((remove) => remove());
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
export {
|
|
147
|
+
createAsyncBridge,
|
|
148
|
+
createConstantBridge,
|
|
149
|
+
createEventBridge
|
|
150
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apps-in-toss/web-framework",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.0-dev.
|
|
4
|
+
"version": "0.0.0-dev.1742896938983",
|
|
5
5
|
"description": "Web Framework for Apps In Toss",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"prepack": "yarn build",
|
|
8
8
|
"typecheck": "tsc --noEmit",
|
|
9
9
|
"lint": "eslint .",
|
|
10
|
-
"build": "tsup"
|
|
11
|
-
"sync-bridge": "bridgepack build"
|
|
10
|
+
"build": "tsup && bridgepack build"
|
|
12
11
|
},
|
|
13
|
-
"main": "./
|
|
14
|
-
"types": "./
|
|
12
|
+
"main": "./dist-web/index.js",
|
|
13
|
+
"types": "./dist-web/index.d.ts",
|
|
15
14
|
"exports": {
|
|
16
15
|
".": {
|
|
17
|
-
"types": "./
|
|
18
|
-
"default": "./
|
|
16
|
+
"types": "./dist-web/index.d.ts",
|
|
17
|
+
"default": "./dist-web/index.js"
|
|
19
18
|
},
|
|
20
19
|
"./config": {
|
|
21
20
|
"types": "./dist/config/index.d.ts",
|
|
@@ -46,11 +45,11 @@
|
|
|
46
45
|
"dist",
|
|
47
46
|
"hermesc",
|
|
48
47
|
"bin.js",
|
|
49
|
-
"
|
|
48
|
+
"dist-web",
|
|
50
49
|
"config.d.ts"
|
|
51
50
|
],
|
|
52
51
|
"devDependencies": {
|
|
53
|
-
"@apps-in-toss/framework": "0.0.0-dev.
|
|
52
|
+
"@apps-in-toss/framework": "0.0.0-dev.1742896938983",
|
|
54
53
|
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
55
54
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
|
|
56
55
|
"@babel/plugin-proposal-numeric-separator": "^7.16.7",
|
|
@@ -66,10 +65,10 @@
|
|
|
66
65
|
"@babel/types": "^7.26.9",
|
|
67
66
|
"@clack/prompts": "^0.10.0",
|
|
68
67
|
"@hono/node-server": "^1.13.8",
|
|
69
|
-
"@react-native-bedrock/bridgepack": "0.0.
|
|
70
|
-
"@react-native-bedrock/cli": "0.0.
|
|
71
|
-
"@react-native-bedrock/mpack-next": "0.0.
|
|
72
|
-
"@react-native-bedrock/native": "0.0.
|
|
68
|
+
"@react-native-bedrock/bridgepack": "0.0.0-dev.1742896731972",
|
|
69
|
+
"@react-native-bedrock/cli": "0.0.0-dev.1742896731972",
|
|
70
|
+
"@react-native-bedrock/mpack-next": "0.0.0-dev.1742896731972",
|
|
71
|
+
"@react-native-bedrock/native": "0.0.0-dev.1742896731972",
|
|
73
72
|
"@toss-design-system/react-native": "^0",
|
|
74
73
|
"@types/babel__core": "^7.20.5",
|
|
75
74
|
"@types/babel__traverse": "^7",
|
|
@@ -87,7 +86,7 @@
|
|
|
87
86
|
"picocolors": "^1.1.1",
|
|
88
87
|
"react": "18.2.0",
|
|
89
88
|
"react-native": "0.72.6",
|
|
90
|
-
"react-native-bedrock": "0.0.
|
|
89
|
+
"react-native-bedrock": "0.0.0-dev.1742896731972",
|
|
91
90
|
"tsup": "^8.3.5",
|
|
92
91
|
"typescript": "4.9.5",
|
|
93
92
|
"uuidv7": "^1.0.2",
|
|
@@ -95,11 +94,11 @@
|
|
|
95
94
|
"zod": "^3.24.1"
|
|
96
95
|
},
|
|
97
96
|
"dependencies": {
|
|
98
|
-
"@apps-in-toss/cli": "0.0.0-dev.
|
|
97
|
+
"@apps-in-toss/cli": "0.0.0-dev.1742896938983",
|
|
99
98
|
"@babel/core": "7.23.9"
|
|
100
99
|
},
|
|
101
100
|
"publishConfig": {
|
|
102
101
|
"access": "public"
|
|
103
102
|
},
|
|
104
|
-
"gitHead": "
|
|
103
|
+
"gitHead": "cf3494b8cc6ce04742df3dbc7d8e8a2435936b0e"
|
|
105
104
|
}
|
package/src-web/closeView.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @public
|
|
3
|
-
* @category 화면 제어
|
|
4
|
-
* @kind function
|
|
5
|
-
* @name closeView
|
|
6
|
-
* @description 현재 화면을 닫는 함수에요. 예를 들어, "닫기" 버튼을 눌러서 서비스를 종료할 때 사용할 수 있어요.
|
|
7
|
-
* @returns {Promise<void>}
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ### 닫기 버튼을 눌러 화면 닫기
|
|
11
|
-
*
|
|
12
|
-
* ```tsx
|
|
13
|
-
*
|
|
14
|
-
* import { closeView } from '@apps-in-toss/web-framework';
|
|
15
|
-
*
|
|
16
|
-
* function CloseButton() {
|
|
17
|
-
* return <input type="button" value="닫기" onClick={closeView} />;
|
|
18
|
-
* }
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export declare function closeView(): Promise<void>;
|
|
22
|
-
|
|
23
|
-
export {};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export type HapticFeedbackType = "tickWeak" | "tap" | "tickMedium" | "softMedium" | "basicWeak" | "basicMedium" | "success" | "error" | "wiggle" | "confetti";
|
|
2
|
-
/**
|
|
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
|
-
*/
|
|
25
|
-
export interface HapticFeedbackOptions {
|
|
26
|
-
type: HapticFeedbackType;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* @public
|
|
30
|
-
* @category 인터렉션
|
|
31
|
-
* @name generateHapticFeedback
|
|
32
|
-
* @description 디바이스에 햅틱 진동을 일으키는 함수예요. 예를 들어, 버튼 터치나 화면전환에 드라마틱한 효과를 주고 싶을 때 사용할 수 있어요. [HapticFeedbackOptions](/reference/@apps-in-toss/web-framework/인터렉션/HapticFeedbackOptions.html)에서 진동타입을 확인해 보세요.
|
|
33
|
-
* @returns {void}
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
* ### 버튼을 눌러 햅틱 일으키기
|
|
37
|
-
*
|
|
38
|
-
* ```tsx
|
|
39
|
-
*
|
|
40
|
-
* import { generateHapticFeedback } from '@apps-in-toss/web-framework';
|
|
41
|
-
*
|
|
42
|
-
* function GenerateHapticFeedback() {
|
|
43
|
-
* return <input type="button" value="햅틱" onClick={() => { generateHapticFeedback( { type: "tickWeak"}) }} />;
|
|
44
|
-
* }
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
export declare function generateHapticFeedback(options: HapticFeedbackOptions): Promise<void>;
|
|
48
|
-
|
|
49
|
-
export {};
|
package/src-web/getDeviceId.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @public
|
|
3
|
-
* @category 환경 확인
|
|
4
|
-
* @kind function
|
|
5
|
-
* @name getDeviceId
|
|
6
|
-
* @description
|
|
7
|
-
* 사용 중인 기기의 고유 식별자를 문자열로 반환해요.
|
|
8
|
-
*
|
|
9
|
-
* 이 함수는 현재 사용 중인 기기의 고유 식별자를 문자열로 반환해요. 기기별로 설정이나 데이터를 저장하거나 사용자의 기기를 식별해서 로그를 기록하고 분석하는 데 사용할 수 있어요. 같은 사용자의 여러 기기를 구분하는 데도 유용해요.
|
|
10
|
-
*
|
|
11
|
-
* @returns {string} 기기의 고유 식별자를 나타내는 문자열이에요.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ### 기기 고유 식별자 가져오기
|
|
15
|
-
*
|
|
16
|
-
* ```tsx
|
|
17
|
-
* import { getDeviceId } from '@apps-in-toss/web-framework';
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* function MyPage() {
|
|
21
|
-
* const id = getDeviceId();
|
|
22
|
-
*
|
|
23
|
-
* return (
|
|
24
|
-
* <span>사용자의 기기 고유 식별자: {id}</span>
|
|
25
|
-
* );
|
|
26
|
-
* }
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export declare function getDeviceId(): string;
|
|
30
|
-
|
|
31
|
-
export {};
|
package/src-web/getLocale.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @public
|
|
3
|
-
* @category 언어
|
|
4
|
-
* @kind function
|
|
5
|
-
* @name getLocale
|
|
6
|
-
* @description
|
|
7
|
-
* 사용자의 로케일(locale) 정보를 반환해요. 네이티브 모듈에서 로케일 정보를 가져올 수 없을 때는 기본값으로 'ko-KR'을 반환합니다. 앱의 현지화 및 언어 설정과 관련된 기능을 구현할 때 사용하세요.
|
|
8
|
-
*
|
|
9
|
-
* @returns {string} 사용자의 로케일 정보를 반환해요.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ### 현재 사용자의 로케일 정보 가져오기
|
|
13
|
-
*
|
|
14
|
-
* ```tsx
|
|
15
|
-
* import { getLocale } from '@apps-in-toss/web-framework';
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* function MyPage() {
|
|
19
|
-
* const locale = getLocale();
|
|
20
|
-
*
|
|
21
|
-
* return (
|
|
22
|
-
* <span>사용자의 로케일 정보: {locale}</span>
|
|
23
|
-
* )
|
|
24
|
-
* }
|
|
25
|
-
*
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export declare function getLocale(): string;
|
|
29
|
-
|
|
30
|
-
export {};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
export type NetworkStatus = "OFFLINE" | "WIFI" | "2G" | "3G" | "4G" | "5G" | "WWAN" | "UNKNOWN";
|
|
2
|
-
/**
|
|
3
|
-
* @public
|
|
4
|
-
* @category 네트워크
|
|
5
|
-
* @kind function
|
|
6
|
-
* @name getNetworkStatus
|
|
7
|
-
* @description
|
|
8
|
-
* 디바이스의 현재 네트워크 연결 상태를 가져오는 함수예요.
|
|
9
|
-
* 반환 값은 `NetworkStatus` 타입으로, 인터넷 연결 여부와 연결 유형(Wi-Fi, 모바일 데이터 등)을 나타내요. 값은 다음 중 하나예요.
|
|
10
|
-
*
|
|
11
|
-
* - `OFFLINE`: 인터넷에 연결되지 않은 상태예요.
|
|
12
|
-
* - `WIFI`: Wi-Fi에 연결된 상태예요.
|
|
13
|
-
* - `2G`: 2G 네트워크에 연결된 상태예요.
|
|
14
|
-
* - `3G`: 3G 네트워크에 연결된 상태예요.
|
|
15
|
-
* - `4G`: 4G 네트워크에 연결된 상태예요.
|
|
16
|
-
* - `5G`: 5G 네트워크에 연결된 상태예요.
|
|
17
|
-
* - `WWAN`: 인터넷은 연결되었지만, 연결 유형(Wi-Fi, 2G~5G)을 알 수 없는 상태예요. 이 상태는 iOS에서만 확인할 수 있어요.
|
|
18
|
-
* - `UNKNOWN`: 인터넷 연결 상태를 알 수 없는 상태예요. 이 상태는 안드로이드에서만 확인할 수 있어요.
|
|
19
|
-
*
|
|
20
|
-
* @returns {Promise<NetworkStatus>} 네트워크 상태를 반환해요.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ### 현재 네트워크 상태 가져오기
|
|
24
|
-
*
|
|
25
|
-
* 네트워크 연결 상태를 가져와 화면에 표시하는 예제예요.
|
|
26
|
-
*
|
|
27
|
-
* ```tsx
|
|
28
|
-
* import { useState, useEffect } from 'react';
|
|
29
|
-
*
|
|
30
|
-
* import { getNetworkStatus, NetworkStatus } from '@apps-in-toss/web-framework';
|
|
31
|
-
*
|
|
32
|
-
* function GetNetworkStatus() {
|
|
33
|
-
* const [status, setStatus] = useState<NetworkStatus | ''>('');
|
|
34
|
-
*
|
|
35
|
-
* useEffect(() => {
|
|
36
|
-
* async function fetchStatus() {
|
|
37
|
-
* const networkStatus = await getNetworkStatus();
|
|
38
|
-
* setStatus(networkStatus);
|
|
39
|
-
* }
|
|
40
|
-
*
|
|
41
|
-
* fetchStatus();
|
|
42
|
-
* }, []);
|
|
43
|
-
*
|
|
44
|
-
* return (
|
|
45
|
-
* <div>
|
|
46
|
-
* <span>현재 네트워크 상태: {status}</span>
|
|
47
|
-
* </div>
|
|
48
|
-
* );
|
|
49
|
-
* }
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
export declare function getNetworkStatus(): Promise<NetworkStatus>;
|
|
53
|
-
|
|
54
|
-
export {};
|
|
@@ -1,35 +0,0 @@
|
|
|
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`](https://reactnative.dev/docs/0.72/platform#os) 값을 기반으로 동작하며, `ios` 또는 `android` 중 하나의 문자열을 반환해요.
|
|
15
|
-
*
|
|
16
|
-
* @returns {'ios' | 'android'} 현재 실행 중인 플랫폼
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
*
|
|
20
|
-
* ### 현재 실행중인 OS 플랫폼 확인하기
|
|
21
|
-
*
|
|
22
|
-
* ```tsx
|
|
23
|
-
* import { getPlatformOS } from '@apps-in-toss/web-framework';
|
|
24
|
-
* import { Text } 'react-native';
|
|
25
|
-
*
|
|
26
|
-
* function Page() {
|
|
27
|
-
* const platform = getPlatformOS();
|
|
28
|
-
*
|
|
29
|
-
* return <span>현재 플랫폼: {platform}</span>;
|
|
30
|
-
* }
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
export declare function getPlatformOS(): "ios" | "android";
|
|
34
|
-
|
|
35
|
-
export {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @public
|
|
3
|
-
* @name getSchemeUri
|
|
4
|
-
* @category 환경 확인
|
|
5
|
-
* @kind function
|
|
6
|
-
* @description 처음에 화면에 진입한 스킴 값이에요. 페이지 이동으로 인한 URI 변경은 반영되지 않아요.
|
|
7
|
-
* @returns {string} 처음에 화면에 진입한 스킴 값을 반환해요.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ### 처음 진입한 스킴 값 가져오기
|
|
11
|
-
*
|
|
12
|
-
* ```tsx
|
|
13
|
-
* import { getSchemeUri } from '@apps-in-toss/web-framework';
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* function MyPage() {
|
|
17
|
-
* const schemeUri = getSchemeUri();
|
|
18
|
-
*
|
|
19
|
-
* return <span>처음에 화면에 진입한 스킴 값: {schemeUri}</span>
|
|
20
|
-
* }
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export declare function getSchemeUri(): string;
|
|
24
|
-
|
|
25
|
-
export {};
|
package/src-web/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const createEvents=()=>({emit(event,args){for(let callbacks=this.events[event]||[],i=0,length=callbacks.length;i<length;i++){callbacks[i](args)}},events:{},on(event,cb){var _this_events,_event;((_this_events=this.events)[_event=event]||(_this_events[_event]=[])).push(cb);return()=>{var _this_events_event;this.events[event]=(_this_events_event=this.events[event])===null||_this_events_event===void 0?void 0:_this_events_event.filter(i=>cb!==i)}}});const createEventId=()=>Math.random().toString(36).substring(2,15);const deserializeError=value=>{if(value&&value.__isError){const err=new Error(value.message);err.name=value.name;err.stack=value.stack;return err}return value};window.__BEDROCK_NATIVE_EMITTER=createEvents();export function closeView(...args){if(!window.ReactNativeWebView){throw new Error("This closeView is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`closeView/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`closeView/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"closeView",eventId,args}))})}export function generateHapticFeedback(...args){if(!window.ReactNativeWebView){throw new Error("This generateHapticFeedback is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`generateHapticFeedback/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`generateHapticFeedback/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"generateHapticFeedback",eventId,args}))})}export function share(...args){if(!window.ReactNativeWebView){throw new Error("This share is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`share/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`share/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"share",eventId,args}))})}export function setSecureScreen(...args){if(!window.ReactNativeWebView){throw new Error("This setSecureScreen is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`setSecureScreen/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`setSecureScreen/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"setSecureScreen",eventId,args}))})}export function setScreenAwakeMode(...args){if(!window.ReactNativeWebView){throw new Error("This setScreenAwakeMode is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`setScreenAwakeMode/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`setScreenAwakeMode/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"setScreenAwakeMode",eventId,args}))})}export function getNetworkStatus(...args){if(!window.ReactNativeWebView){throw new Error("This getNetworkStatus is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`getNetworkStatus/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`getNetworkStatus/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"getNetworkStatus",eventId,args}))})}export function getLocale(){if(!window.ReactNativeWebView){throw new Error("This getLocale is not available in browser environment")}if("getLocale"in window.__CONSTANT_HANDLER_MAP){return window.__CONSTANT_HANDLER_MAP["getLocale"]}throw new Error("getLocale is not a constant handler")}export function getSchemeUri(){if(!window.ReactNativeWebView){throw new Error("This getSchemeUri is not available in browser environment")}if("getSchemeUri"in window.__CONSTANT_HANDLER_MAP){return window.__CONSTANT_HANDLER_MAP["getSchemeUri"]}throw new Error("getSchemeUri is not a constant handler")}export function getDeviceId(){if(!window.ReactNativeWebView){throw new Error("This getDeviceId is not available in browser environment")}if("getDeviceId"in window.__CONSTANT_HANDLER_MAP){return window.__CONSTANT_HANDLER_MAP["getDeviceId"]}throw new Error("getDeviceId is not a constant handler")}export function getPlatformOS(){if(!window.ReactNativeWebView){throw new Error("This getPlatformOS is not available in browser environment")}if("getPlatformOS"in window.__CONSTANT_HANDLER_MAP){return window.__CONSTANT_HANDLER_MAP["getPlatformOS"]}throw new Error("getPlatformOS is not a constant handler")}export function setClipboardText(...args){if(!window.ReactNativeWebView){throw new Error("This setClipboardText is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`setClipboardText/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`setClipboardText/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"setClipboardText",eventId,args}))})}export function getClipboardText(...args){if(!window.ReactNativeWebView){throw new Error("This getClipboardText is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`getClipboardText/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`getClipboardText/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"getClipboardText",eventId,args}))})}export function fetchContacts(...args){if(!window.ReactNativeWebView){throw new Error("This fetchContacts is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`fetchContacts/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`fetchContacts/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"fetchContacts",eventId,args}))})}export function fetchAlbumPhotos(...args){if(!window.ReactNativeWebView){throw new Error("This fetchAlbumPhotos is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`fetchAlbumPhotos/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`fetchAlbumPhotos/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"fetchAlbumPhotos",eventId,args}))})}export var Accuracy=function(Accuracy){Accuracy[Accuracy["Lowest"]=1]="Lowest";Accuracy[Accuracy["Low"]=2]="Low";Accuracy[Accuracy["Balanced"]=3]="Balanced";Accuracy[Accuracy["High"]=4]="High";Accuracy[Accuracy["Highest"]=5]="Highest";Accuracy[Accuracy["BestForNavigation"]=6]="BestForNavigation";return Accuracy}({});export function getCurrentLocation(...args){if(!window.ReactNativeWebView){throw new Error("This getCurrentLocation is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`getCurrentLocation/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`getCurrentLocation/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"getCurrentLocation",eventId,args}))})}export function openCamera(...args){if(!window.ReactNativeWebView){throw new Error("This openCamera is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`openCamera/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`openCamera/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"openCamera",eventId,args}))})}export function appLogin(...args){if(!window.ReactNativeWebView){throw new Error("This appLogin is not available in browser environment")}const eventId=createEventId();const emitters=[];const unsubscribe=()=>{for(const emitter of emitters){emitter()}};return new Promise((resolve,reject)=>{emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`appLogin/resolve/${eventId}`,args=>{unsubscribe();resolve(args)}));emitters.push(window.__BEDROCK_NATIVE_EMITTER.on(`appLogin/reject/${eventId}`,error=>{unsubscribe();reject(deserializeError(error))}));window.ReactNativeWebView.postMessage(JSON.stringify({type:"method",functionName:"appLogin",eventId,args}))})}export function getOperationalEnvironment(){if(!window.ReactNativeWebView){throw new Error("This getOperationalEnvironment is not available in browser environment")}if("getOperationalEnvironment"in window.__CONSTANT_HANDLER_MAP){return window.__CONSTANT_HANDLER_MAP["getOperationalEnvironment"]}throw new Error("getOperationalEnvironment is not a constant handler")}export function startUpdateLocation({onEvent,onError,options}){if(!window.ReactNativeWebView){onError(new Error("This startUpdateLocation is not available in browser environment"));return()=>{}}const eventId=createEventId();const removes=[window.__BEDROCK_NATIVE_EMITTER.on(`startUpdateLocation/onEvent/${eventId}`,response=>{onEvent(response)}),window.__BEDROCK_NATIVE_EMITTER.on(`startUpdateLocation/onError/${eventId}`,error=>{onError(deserializeError(error))})];window.ReactNativeWebView.postMessage(JSON.stringify({type:"addEventListener",functionName:"startUpdateLocation",eventId,args:options}));return()=>{window.ReactNativeWebView.postMessage(JSON.stringify({type:"removeEventListener",functionName:"startUpdateLocation",eventId}));for(const remove of removes){remove()}}}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @public
|
|
3
|
-
* @category 화면 제어
|
|
4
|
-
* @kind function
|
|
5
|
-
* @name setScreenAwakeMode
|
|
6
|
-
* @description
|
|
7
|
-
* `setScreenAwakeMode` 함수는 화면이 항상 켜져 있도록 설정하거나 해제하는 기능을 제공해요.
|
|
8
|
-
* 이 기능은 웹툰, 동영상, 문서 읽기 등 화면을 지속해서 켜두어야 하는 상황에서 유용해요.
|
|
9
|
-
*
|
|
10
|
-
* `enabled` 옵션을 `true`로 설정하면 화면이 꺼지지 않게 유지하고, `false`로 설정하면 기본 화면 보호기 시간에 따라 화면이 꺼져요. 특히, 이 함수는 앱 전체에 영향을 미치므로 특정 화면에서만 사용하려면 화면을 벗어날 때 이전 상태로 복구하는 추가 작업이 필요해요.
|
|
11
|
-
*
|
|
12
|
-
* 예를 들어, 미디어 콘텐츠 감상 화면에서는 항상 켜짐 모드를 활성화하고, 화면을 떠날 때 설정을 복구해서 불필요한 배터리 소모를 방지할 수 있어요.
|
|
13
|
-
*
|
|
14
|
-
* 다만, 앱에서 벗어나는 상황에서는 항상 켜짐 모드가 비활성화될 수 있으니 주의해야 해요.
|
|
15
|
-
*
|
|
16
|
-
* @param {object} options 화면 항상 켜짐 모드의 설정 값이에요.
|
|
17
|
-
* @param {boolean} options.enabled 화면 항상 켜짐 모드를 켜거나 끄는 옵션이에요.
|
|
18
|
-
* `true`로 설정하면 화면이 항상 켜지고, `false`로 설정하면 화면 보호기 시간에 따라 꺼져요.
|
|
19
|
-
*
|
|
20
|
-
* @returns {object} 현재 화면 항상 켜짐 모드의 설정 상태를 반환해요.
|
|
21
|
-
* @returns {boolean} enabled 화면 항상 켜짐 모드가 켜져 있는지 여부를 나타내는 값이에요.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ### 화면 항상 켜짐 모드 설정하기
|
|
25
|
-
*
|
|
26
|
-
* ```tsx
|
|
27
|
-
*
|
|
28
|
-
* import { setScreenAwakeMode } from '@apps-in-toss/web-framework';
|
|
29
|
-
*
|
|
30
|
-
* function SetScreenAwakeMode() {
|
|
31
|
-
* return (
|
|
32
|
-
* <input type="button"
|
|
33
|
-
* value="화면 항상 켜기"
|
|
34
|
-
* onClick={() => {
|
|
35
|
-
* setScreenAwakeMode({ enabled: true });
|
|
36
|
-
* }}
|
|
37
|
-
* />
|
|
38
|
-
* );
|
|
39
|
-
* }
|
|
40
|
-
* ```
|
|
41
|
-
*
|
|
42
|
-
* ### 화면 항상 켜짐 모드 복구하기
|
|
43
|
-
* 특정 화면을 벗어날 때 이전 상태로 복구하려면 다음과 같이 `useEffect`를 사용하세요.
|
|
44
|
-
*
|
|
45
|
-
* ```tsx
|
|
46
|
-
* import { useEffect } from 'react';
|
|
47
|
-
* import { setScreenAwakeMode, cleanUp } from '@apps-in-toss/web-framework';
|
|
48
|
-
*
|
|
49
|
-
* function MediaScreen() {
|
|
50
|
-
* useEffect(() => {
|
|
51
|
-
* setScreenAwakeMode({ enabled: true });
|
|
52
|
-
*
|
|
53
|
-
* return () => {
|
|
54
|
-
* setScreenAwakeMode({ enabled: false }); // 설정을 이전 상태로 복구해요.
|
|
55
|
-
* };
|
|
56
|
-
* }, []);
|
|
57
|
-
*
|
|
58
|
-
* return <span>미디어 콘텐츠를 감상하는 화면</span>;
|
|
59
|
-
* }
|
|
60
|
-
* ```
|
|
61
|
-
*/
|
|
62
|
-
export declare function setScreenAwakeMode(options: {
|
|
63
|
-
enabled: boolean;
|
|
64
|
-
}): Promise<{
|
|
65
|
-
enabled: boolean;
|
|
66
|
-
}>;
|
|
67
|
-
|
|
68
|
-
export {};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @public
|
|
3
|
-
* @name setSecureScreen
|
|
4
|
-
* @category 화면 제어
|
|
5
|
-
* @kind function
|
|
6
|
-
* @description
|
|
7
|
-
* 화면 캡쳐를 차단해서 민감한 정보가 유출되지 않도록 보호하거나, 필요할 경우 캡쳐를 허용하도록 설정해요. 예를 들어 보안이 중요한 화면에서 사용할 수 있어요.
|
|
8
|
-
*
|
|
9
|
-
* @param {object} options 화면 캡쳐 설정 옵션이에요.
|
|
10
|
-
* @param {boolean} options.enabled 화면 캡쳐를 차단할지 여부를 설정해요. `true`면 캡쳐를 차단하고, `false`면 허용해요.
|
|
11
|
-
* @returns {enabled: boolean} 현재 설정된 캡쳐 차단 상태를 반환해요.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ### 캡쳐 허용 상태 변경하기
|
|
15
|
-
*
|
|
16
|
-
* ```tsx
|
|
17
|
-
*
|
|
18
|
-
* import { setSecureScreen } from '@apps-in-toss/web-framework';
|
|
19
|
-
*
|
|
20
|
-
* function SetSecureScreen() {
|
|
21
|
-
* return <input type="button" value="캡쳐 막기" onClick={async () => {
|
|
22
|
-
* await setSecureScreen({ enabled: true });
|
|
23
|
-
* }} />;
|
|
24
|
-
* }
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export declare function setSecureScreen(options: {
|
|
28
|
-
enabled: boolean;
|
|
29
|
-
}): Promise<{
|
|
30
|
-
enabled: boolean;
|
|
31
|
-
}>;
|
|
32
|
-
|
|
33
|
-
export {};
|
package/src-web/share.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @public
|
|
3
|
-
* @category 공유
|
|
4
|
-
* @kind function
|
|
5
|
-
* @name share
|
|
6
|
-
* @description
|
|
7
|
-
* 사용자가 콘텐츠를 다른 사람과 공유할 수 있도록 네이티브 공유 시트를 표시해요.
|
|
8
|
-
* `options.message` 속성에 공유할 메시지를 전달하면, 사용자가 선택할 수 있는 앱 목록이 표시돼요.
|
|
9
|
-
* 예를 들어, 사용자가 텍스트 메시지를 공유하거나 메모 앱에 저장하려고 할 때 유용해요.
|
|
10
|
-
* @param {object} options - 공유할 메시지를 담은 객체예요.
|
|
11
|
-
* @param {string} options.message - 공유할 텍스트 문자열이에요. 예를 들어, "안녕하세요! 이 내용을 공유합니다."
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ### 공유하기 기능 구현하기
|
|
15
|
-
*
|
|
16
|
-
* 아래는 버튼을 클릭하면 메시지를 공유하는 간단한 예제예요.
|
|
17
|
-
*
|
|
18
|
-
* ```tsx
|
|
19
|
-
* import { share } from '@apps-in-toss/web-framework';
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* function MyPage() {
|
|
23
|
-
* return (
|
|
24
|
-
* <input type="button"
|
|
25
|
-
* value="공유"
|
|
26
|
-
* onClick={() => share({ message: '공유할 메시지입니다.' })}
|
|
27
|
-
* />
|
|
28
|
-
* );
|
|
29
|
-
* }
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export declare function share(message: {
|
|
33
|
-
message: string;
|
|
34
|
-
}): Promise<void>;
|
|
35
|
-
|
|
36
|
-
export {};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|