@apps-in-toss/web-bridge 2.5.2 → 2.6.1
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/bridge.d.ts +2 -0
- package/dist/bridge.js +1 -1
- package/dist/fetchAlbumItems.d.ts +81 -0
- package/dist/openPDFViewer.d.ts +57 -0
- package/package.json +4 -4
package/dist/bridge.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export * from './setDeviceOrientation';
|
|
|
22
22
|
export * from './checkoutPayment';
|
|
23
23
|
export * from './requestTossPayPaysBilling';
|
|
24
24
|
export * from './saveBase64Data';
|
|
25
|
+
export * from './openPDFViewer';
|
|
26
|
+
export * from './fetchAlbumItems';
|
|
25
27
|
export * from './appsInTossSignTossCert';
|
|
26
28
|
export * from './getGameCenterGameProfile';
|
|
27
29
|
export * from './openGameCenterLeaderboard';
|
package/dist/bridge.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createAsyncBridge,createConstantBridge,createEventBridge}from"@apps-in-toss/bridge-core";var createEvents=function(){return{emit:function emit(event,args){for(var callbacks=this.events[event]||[],i=0,length=callbacks.length;i<length;i++){callbacks[i](args)}},events:{},on:function on(event,cb){var _this=this;var _this_events,_event;((_this_events=this.events)[_event=event]||(_this_events[_event]=[])).push(cb);return function(){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(function(i){return cb!==i})}}}};if(typeof window!=="undefined"){window.__GRANITE_NATIVE_EMITTER=createEvents()}export var closeView=createAsyncBridge("closeView");export var generateHapticFeedback=createAsyncBridge("generateHapticFeedback");export var share=createAsyncBridge("share");export var setSecureScreen=createAsyncBridge("setSecureScreen");export var setScreenAwakeMode=createAsyncBridge("setScreenAwakeMode");export var getNetworkStatus=createAsyncBridge("getNetworkStatus");export var setIosSwipeGestureEnabled=createAsyncBridge("setIosSwipeGestureEnabled");export var openURL=createAsyncBridge("openURL");export var openPermissionDialog=createAsyncBridge("openPermissionDialog");export var getPermission=createAsyncBridge("getPermission");export var requestPermission=createAsyncBridge("requestPermission");export var setClipboardText=createConstantBridge("setClipboardText");export var getClipboardText=createConstantBridge("getClipboardText");export var fetchContacts=createConstantBridge("fetchContacts");export var fetchAlbumPhotos=createConstantBridge("fetchAlbumPhotos");export var getCurrentLocation=createConstantBridge("getCurrentLocation");export var openCamera=createConstantBridge("openCamera");export var appLogin=createAsyncBridge("appLogin");export var eventLog=createAsyncBridge("eventLog");export var getTossShareLink=createAsyncBridge("getTossShareLink");export var setDeviceOrientation=createAsyncBridge("setDeviceOrientation");export var checkoutPayment=createAsyncBridge("checkoutPayment");export var requestTossPayPaysBilling=createAsyncBridge("requestTossPayPaysBilling");export var saveBase64Data=createAsyncBridge("saveBase64Data");export var appsInTossSignTossCert=createAsyncBridge("appsInTossSignTossCert");export var getGameCenterGameProfile=createAsyncBridge("getGameCenterGameProfile");export var openGameCenterLeaderboard=createAsyncBridge("openGameCenterLeaderboard");export var submitGameCenterLeaderBoardScore=createAsyncBridge("submitGameCenterLeaderBoardScore");export var getAnonymousKey=createAsyncBridge("getAnonymousKey");export var getUserKeyForGame=createAsyncBridge("getUserKeyForGame");export var grantPromotionReward=createAsyncBridge("grantPromotionReward");export var grantPromotionRewardForGame=createAsyncBridge("grantPromotionRewardForGame");export var getIsTossLoginIntegratedService=createAsyncBridge("getIsTossLoginIntegratedService");export var getServerTime=createAsyncBridge("getServerTime");export var requestReview=createAsyncBridge("requestReview");export var getLocale=createConstantBridge("getLocale");export var getSchemeUri=createConstantBridge("getSchemeUri");export var getPlatformOS=createConstantBridge("getPlatformOS");export var getOperationalEnvironment=createConstantBridge("getOperationalEnvironment");export var getTossAppVersion=createConstantBridge("getTossAppVersion");export var getDeviceId=createConstantBridge("getDeviceId");export var getGroupId=createConstantBridge("getGroupId");export var contactsViral=createEventBridge("contactsViral");export var startUpdateLocation=createEventBridge("startUpdateLocation");export var onVisibilityChangedByTransparentServiceWeb=createEventBridge("onVisibilityChangedByTransparentServiceWeb");
|
|
1
|
+
import{createAsyncBridge,createConstantBridge,createEventBridge}from"@apps-in-toss/bridge-core";var createEvents=function(){return{emit:function emit(event,args){for(var callbacks=this.events[event]||[],i=0,length=callbacks.length;i<length;i++){callbacks[i](args)}},events:{},on:function on(event,cb){var _this=this;var _this_events,_event;((_this_events=this.events)[_event=event]||(_this_events[_event]=[])).push(cb);return function(){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(function(i){return cb!==i})}}}};if(typeof window!=="undefined"){window.__GRANITE_NATIVE_EMITTER=createEvents()}export var closeView=createAsyncBridge("closeView");export var generateHapticFeedback=createAsyncBridge("generateHapticFeedback");export var share=createAsyncBridge("share");export var setSecureScreen=createAsyncBridge("setSecureScreen");export var setScreenAwakeMode=createAsyncBridge("setScreenAwakeMode");export var getNetworkStatus=createAsyncBridge("getNetworkStatus");export var setIosSwipeGestureEnabled=createAsyncBridge("setIosSwipeGestureEnabled");export var openURL=createAsyncBridge("openURL");export var openPermissionDialog=createAsyncBridge("openPermissionDialog");export var getPermission=createAsyncBridge("getPermission");export var requestPermission=createAsyncBridge("requestPermission");export var setClipboardText=createConstantBridge("setClipboardText");export var getClipboardText=createConstantBridge("getClipboardText");export var fetchContacts=createConstantBridge("fetchContacts");export var fetchAlbumPhotos=createConstantBridge("fetchAlbumPhotos");export var getCurrentLocation=createConstantBridge("getCurrentLocation");export var openCamera=createConstantBridge("openCamera");export var appLogin=createAsyncBridge("appLogin");export var eventLog=createAsyncBridge("eventLog");export var getTossShareLink=createAsyncBridge("getTossShareLink");export var setDeviceOrientation=createAsyncBridge("setDeviceOrientation");export var checkoutPayment=createAsyncBridge("checkoutPayment");export var requestTossPayPaysBilling=createAsyncBridge("requestTossPayPaysBilling");export var saveBase64Data=createAsyncBridge("saveBase64Data");export var openPDFViewer=createAsyncBridge("openPDFViewer");export var fetchAlbumItems=createAsyncBridge("fetchAlbumItems");export var appsInTossSignTossCert=createAsyncBridge("appsInTossSignTossCert");export var getGameCenterGameProfile=createAsyncBridge("getGameCenterGameProfile");export var openGameCenterLeaderboard=createAsyncBridge("openGameCenterLeaderboard");export var submitGameCenterLeaderBoardScore=createAsyncBridge("submitGameCenterLeaderBoardScore");export var getAnonymousKey=createAsyncBridge("getAnonymousKey");export var getUserKeyForGame=createAsyncBridge("getUserKeyForGame");export var grantPromotionReward=createAsyncBridge("grantPromotionReward");export var grantPromotionRewardForGame=createAsyncBridge("grantPromotionRewardForGame");export var getIsTossLoginIntegratedService=createAsyncBridge("getIsTossLoginIntegratedService");export var getServerTime=createAsyncBridge("getServerTime");export var requestReview=createAsyncBridge("requestReview");export var getLocale=createConstantBridge("getLocale");export var getSchemeUri=createConstantBridge("getSchemeUri");export var getPlatformOS=createConstantBridge("getPlatformOS");export var getOperationalEnvironment=createConstantBridge("getOperationalEnvironment");export var getTossAppVersion=createConstantBridge("getTossAppVersion");export var getDeviceId=createConstantBridge("getDeviceId");export var getGroupId=createConstantBridge("getGroupId");export var contactsViral=createEventBridge("contactsViral");export var startUpdateLocation=createEventBridge("startUpdateLocation");export var onVisibilityChangedByTransparentServiceWeb=createEventBridge("onVisibilityChangedByTransparentServiceWeb");
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public
|
|
3
|
+
* @category 앨범
|
|
4
|
+
* @name AlbumItemType
|
|
5
|
+
* @description 앨범에서 가져올 미디어 유형이에요.
|
|
6
|
+
*/
|
|
7
|
+
export type AlbumItemType = "PHOTO" | "VIDEO";
|
|
8
|
+
/**
|
|
9
|
+
* @public
|
|
10
|
+
* @category 앨범
|
|
11
|
+
* @name FetchAlbumItemsOptions
|
|
12
|
+
* @description 앨범에서 사진·동영상을 선택할 때 사용하는 옵션이에요.
|
|
13
|
+
* @property {Array<"PHOTO" | "VIDEO">} [types] - 가져올 미디어 유형 목록이에요. 지정하지 않으면 사진만 가져와요.
|
|
14
|
+
* @property {number} [maxCount] - 가져올 항목의 최대 개수예요. 기본값은 10이에요.
|
|
15
|
+
* @property {number} [maxWidth] - 이미지의 최대 폭이에요. 단위는 픽셀이에요. 기본값은 1024이에요.
|
|
16
|
+
* @property {boolean} [base64] - 이미지의 `dataUri`를 Base64 문자열로 반환할지 여부예요. 기본값은 `false`이에요.
|
|
17
|
+
*/
|
|
18
|
+
export interface FetchAlbumItemsOptions {
|
|
19
|
+
types?: AlbumItemType[];
|
|
20
|
+
maxCount?: number;
|
|
21
|
+
maxWidth?: number;
|
|
22
|
+
base64?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @public
|
|
26
|
+
* @category 앨범
|
|
27
|
+
* @name AlbumItemResponse
|
|
28
|
+
* @description 앨범에서 선택한 미디어 항목이에요.
|
|
29
|
+
* @property {string} id - 항목의 고유 ID예요.
|
|
30
|
+
* @property {string} dataUri - 미디어 데이터 URI예요. `type`이 `PHOTO`면서 `base64` 옵션이 `true`이면 Base64 문자열로 반환돼요.
|
|
31
|
+
* @property {"PHOTO" | "VIDEO"} type - 미디어 유형이에요.
|
|
32
|
+
*/
|
|
33
|
+
export interface AlbumItemResponse {
|
|
34
|
+
id: string;
|
|
35
|
+
dataUri: string;
|
|
36
|
+
type: AlbumItemType;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @public
|
|
40
|
+
* @category 앨범
|
|
41
|
+
* @name fetchAlbumItems
|
|
42
|
+
* @description 사용자 앨범에서 사진·동영상을 선택해 가져와요. 사용자가 선택을 취소하면 빈 배열 `[]`을 반환해요.
|
|
43
|
+
*
|
|
44
|
+
* @param {FetchAlbumItemsOptions} [options] - 조회 옵션을 담은 객체예요.
|
|
45
|
+
* @returns {Promise<AlbumItemResponse[]>} 선택한 미디어 목록을 반환해요. 취소 시 빈 배열을 반환해요.
|
|
46
|
+
*
|
|
47
|
+
* @throws 다음 에러 코드가 발생할 수 있어요.
|
|
48
|
+
* - {code: `NOT_ALLOWED`}: 앨범 접근이 허용되지 않았을 때
|
|
49
|
+
* - {code: `INVALID_REQUEST`}: 요청 파라미터가 올바르지 않을 때
|
|
50
|
+
* - {code: `INVALID_DATA`}: 미디어 데이터가 유효하지 않을 때
|
|
51
|
+
* - {code: `UNSUPPORTED_APP_VERSION`}: 토스앱 버전이 5.261.0보다 낮을 때
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```tsx
|
|
55
|
+
* import { fetchAlbumItems, FetchAlbumItemsError } from '@apps-in-toss/web-framework';
|
|
56
|
+
*
|
|
57
|
+
* async function pickMedia() {
|
|
58
|
+
* try {
|
|
59
|
+
* const items = await fetchAlbumItems({
|
|
60
|
+
* types: ['PHOTO', 'VIDEO'],
|
|
61
|
+
* maxCount: 5,
|
|
62
|
+
* base64: true,
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* if (items.length === 0) {
|
|
66
|
+
* console.log('선택이 취소되었어요.');
|
|
67
|
+
* return;
|
|
68
|
+
* }
|
|
69
|
+
*
|
|
70
|
+
* items.forEach((item) => {
|
|
71
|
+
* console.log(item.type, item.id);
|
|
72
|
+
* });
|
|
73
|
+
* } catch (error) {
|
|
74
|
+
* console.error('앨범 조회 오류:', error.code);
|
|
75
|
+
* }
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare function fetchAlbumItems(options?: FetchAlbumItemsOptions): Promise<AlbumItemResponse[]>;
|
|
80
|
+
|
|
81
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public
|
|
3
|
+
* @category PDF
|
|
4
|
+
* @name OpenPDFViewerParams
|
|
5
|
+
* @description PDF 뷰어를 열 때 필요한 파라미터예요.
|
|
6
|
+
* @property {string} data - Base64 형식으로 인코딩된 PDF 데이터 문자열이에요.
|
|
7
|
+
* @property {string} [filename] - PDF 파일 이름이에요.
|
|
8
|
+
*/
|
|
9
|
+
export interface OpenPDFViewerParams {
|
|
10
|
+
data: string;
|
|
11
|
+
filename?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
* @category PDF
|
|
16
|
+
* @name OpenPDFViewerResult
|
|
17
|
+
* @description PDF 뷰어가 닫혔을 때 반환되는 결과예요.
|
|
18
|
+
*/
|
|
19
|
+
export type OpenPDFViewerResult = "CLOSE";
|
|
20
|
+
/**
|
|
21
|
+
* @public
|
|
22
|
+
* @category PDF
|
|
23
|
+
* @name openPDFViewer
|
|
24
|
+
* @description Base64로 인코딩된 PDF 데이터를 네이티브 PDF 뷰어로 열어요. 사용자가 뷰어를 닫으면 `'CLOSE'`를 반환해요.
|
|
25
|
+
*
|
|
26
|
+
* @param {OpenPDFViewerParams} params - PDF 데이터와 파일 이름을 담은 객체예요.
|
|
27
|
+
* @returns {Promise<OpenPDFViewerResult>} PDF 뷰어가 닫히면 `'CLOSE'`를 반환해요.
|
|
28
|
+
*
|
|
29
|
+
* @throws
|
|
30
|
+
* - {code: `INVALID_REQUEST`}: 요청 파라미터가 올바르지 않을 때
|
|
31
|
+
* - {code: `INVALID_DATA`}: PDF 데이터가 유효하지 않을 때
|
|
32
|
+
* - {code: `PDF_VIEWER_ERROR`}: PDF 뷰어를 여는 과정에서 오류가 발생했을 때
|
|
33
|
+
* - {code: `UNSUPPORTED_APP_VERSION`}: 토스앱 버전이 5.261.0보다 낮을 때
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* import { openPDFViewer } from '@apps-in-toss/web-framework';
|
|
38
|
+
*
|
|
39
|
+
* async function showPdf() {
|
|
40
|
+
* try {
|
|
41
|
+
* const result = await openPDFViewer({
|
|
42
|
+
* data: 'JVBERi0xLjQK...',
|
|
43
|
+
* filename: 'document.pdf',
|
|
44
|
+
* });
|
|
45
|
+
*
|
|
46
|
+
* if (result === 'CLOSE') {
|
|
47
|
+
* console.log('PDF 뷰어가 닫혔어요.');
|
|
48
|
+
* }
|
|
49
|
+
* } catch (error) {
|
|
50
|
+
* console.error('PDF 뷰어 오류:', error);
|
|
51
|
+
* }
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export declare function openPDFViewer(params: OpenPDFViewerParams): Promise<OpenPDFViewerResult>;
|
|
56
|
+
|
|
57
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apps-in-toss/web-bridge",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.6.1",
|
|
5
5
|
"description": "Web Bridge for Apps In Toss",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"typecheck": "tsc --noEmit",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"dist"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@apps-in-toss/types": "2.
|
|
30
|
+
"@apps-in-toss/types": "2.6.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@apps-in-toss/bridge-core": "2.
|
|
34
|
-
"@apps-in-toss/native-modules": "^2.
|
|
33
|
+
"@apps-in-toss/bridge-core": "2.6.1",
|
|
34
|
+
"@apps-in-toss/native-modules": "^2.6.1",
|
|
35
35
|
"@swc/core": "^1.12.7",
|
|
36
36
|
"picocolors": "^1.1.1",
|
|
37
37
|
"ts-morph": "^26.0.0",
|