@apps-in-toss/framework 0.0.24 → 0.0.26
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/index.cjs +13 -14
- package/dist/index.d.cts +227 -30
- package/dist/index.d.ts +227 -30
- package/dist/index.js +13 -14
- package/package.json +12 -12
- package/src/async-bridges.ts +10 -10
- package/src/constant-bridges.ts +3 -3
- package/src/event-bridges.ts +1 -1
package/dist/index.cjs
CHANGED
|
@@ -76,14 +76,19 @@ var env = {
|
|
|
76
76
|
// src/native-modules/tossCore.ts
|
|
77
77
|
var import_react_native3 = require("react-native");
|
|
78
78
|
|
|
79
|
-
// src/native-modules/isMinVersionSupported.ts
|
|
80
|
-
var import_react_native2 = require("react-native");
|
|
81
|
-
|
|
82
79
|
// src/native-modules/AppsInTossModule.ts
|
|
83
80
|
var import_react_native = require("react-native");
|
|
84
81
|
var AppsInTossModuleInstance = import_react_native.NativeModules.AppsInTossModule;
|
|
85
82
|
var AppsInTossModule = AppsInTossModuleInstance;
|
|
86
83
|
|
|
84
|
+
// src/native-modules/getOperationalEnvironment.ts
|
|
85
|
+
function getOperationalEnvironment() {
|
|
86
|
+
return AppsInTossModule.operationalEnvironment;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// src/native-modules/isMinVersionSupported.ts
|
|
90
|
+
var import_react_native2 = require("react-native");
|
|
91
|
+
|
|
87
92
|
// src/utils/compareVersion.ts
|
|
88
93
|
var SEMVER_REGEX = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\\-]+(?:\.[\da-z\\-]+)*))?(?:\+[\da-z\\-]+(?:\.[\da-z\\-]+)*)?)?)?$/i;
|
|
89
94
|
var isWildcard = (val) => ["*", "x", "X"].includes(val);
|
|
@@ -176,7 +181,8 @@ function isMinVersionSupported(minVersions) {
|
|
|
176
181
|
var TossCoreModule = import_react_native3.NativeModules.TossCoreModule;
|
|
177
182
|
function tossCoreEventLog(params) {
|
|
178
183
|
const supported = isMinVersionSupported({ ios: "5.210.0", android: "5.210.0" });
|
|
179
|
-
|
|
184
|
+
const isSandbox = getOperationalEnvironment() === "sandbox";
|
|
185
|
+
if (!supported || isSandbox) {
|
|
180
186
|
return;
|
|
181
187
|
}
|
|
182
188
|
TossCoreModule.eventLog({
|
|
@@ -305,7 +311,9 @@ var UpdateLocationEvent = class extends import_react_native_bedrock4.BedrockEven
|
|
|
305
311
|
}
|
|
306
312
|
};
|
|
307
313
|
remove() {
|
|
308
|
-
--this.subscriptionCount === 0
|
|
314
|
+
if (--this.subscriptionCount === 0) {
|
|
315
|
+
AppsInTossModuleInstance.stopUpdateLocation({});
|
|
316
|
+
}
|
|
309
317
|
this.ref.remove();
|
|
310
318
|
}
|
|
311
319
|
listener(options, onEvent, onError) {
|
|
@@ -642,11 +650,6 @@ function startUpdateLocation(eventParams) {
|
|
|
642
650
|
function noop() {
|
|
643
651
|
}
|
|
644
652
|
|
|
645
|
-
// src/native-modules/getOperationalEnvironment.ts
|
|
646
|
-
function getOperationalEnvironment() {
|
|
647
|
-
return AppsInTossModule.operationalEnvironment;
|
|
648
|
-
}
|
|
649
|
-
|
|
650
653
|
// src/native-modules/ads/googleAdMob.ts
|
|
651
654
|
function loadAdMobInterstitialAd(params) {
|
|
652
655
|
if (!loadAdMobInterstitialAd.isSupported()) {
|
|
@@ -1192,8 +1195,6 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
1192
1195
|
loadAdMobRewardedAd: GoogleAdMob.loadAdMobRewardedAd,
|
|
1193
1196
|
showAdMobRewardedAd: GoogleAdMob.showAdMobRewardedAd
|
|
1194
1197
|
},
|
|
1195
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1196
|
-
// @ts-expect-error
|
|
1197
1198
|
constantHandlerMap: {
|
|
1198
1199
|
...bedrockConstantBridges,
|
|
1199
1200
|
...constant_bridges_exports,
|
|
@@ -1207,8 +1208,6 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
1207
1208
|
/** env */
|
|
1208
1209
|
getDeploymentId: env.getDeploymentId
|
|
1209
1210
|
},
|
|
1210
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1211
|
-
// @ts-expect-error
|
|
1212
1211
|
asyncHandlerMap: {
|
|
1213
1212
|
...bedrockAsyncBridges,
|
|
1214
1213
|
...async_bridges_exports,
|
package/dist/index.d.cts
CHANGED
|
@@ -149,10 +149,8 @@ interface StartUpdateLocationSubscription extends EmitterSubscription {
|
|
|
149
149
|
* @kind typedef
|
|
150
150
|
* @description
|
|
151
151
|
* 디바이스의 위치 정보 변경을 감지해요
|
|
152
|
-
* @extends {EventEmitterSchema<'updateLocation', [Location]>}
|
|
153
152
|
*/
|
|
154
|
-
|
|
155
|
-
}
|
|
153
|
+
type UpdateLocationEventEmitter = EventEmitterSchema<'updateLocation', [Location]>;
|
|
156
154
|
/**
|
|
157
155
|
* @public
|
|
158
156
|
* @category 위치 정보
|
|
@@ -365,20 +363,25 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
365
363
|
* @property {() => boolean} [isSupported] 현재 실행 중인 앱(예: 토스 앱, 개발용 샌드박스 앱 등)에서 Google AdMob 광고 기능을 지원하는지 확인하는 함수예요. 기능을 사용하기 전에 지원 여부를 확인해야 해요.
|
|
366
364
|
*
|
|
367
365
|
* @example
|
|
368
|
-
* ###
|
|
366
|
+
* ### 버튼 눌러 불러온 전면 광고 보여주기
|
|
369
367
|
* ```tsx
|
|
370
368
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
371
|
-
* import {
|
|
372
|
-
* import {
|
|
369
|
+
* import { useFocusEffect } from '@react-native-bedrock/native/@react-navigation/native';
|
|
370
|
+
* import { useCallback, useState } from 'react';
|
|
371
|
+
* import { Button, Text, View } from 'react-native';
|
|
372
|
+
* import { useNavigation } from 'react-native-bedrock';
|
|
373
373
|
*
|
|
374
|
-
* const AD_UNIT_ID = '<
|
|
374
|
+
* const AD_UNIT_ID = '<AD_UNIT_ID>';
|
|
375
375
|
*
|
|
376
|
-
* function
|
|
377
|
-
*
|
|
376
|
+
* export function GoogleAdmobInterstitialAdExample() {
|
|
377
|
+
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
378
|
+
* const navigation = useNavigation();
|
|
379
|
+
*
|
|
380
|
+
* const loadAd = useCallback(() => {
|
|
378
381
|
* if (GoogleAdMob.loadAdMobInterstitialAd.isSupported() !== true) {
|
|
379
382
|
* return;
|
|
380
383
|
* }
|
|
381
|
-
|
|
384
|
+
|
|
382
385
|
* const cleanup = GoogleAdMob.loadAdMobInterstitialAd({
|
|
383
386
|
* options: {
|
|
384
387
|
* adUnitId: AD_UNIT_ID,
|
|
@@ -387,6 +390,7 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
387
390
|
* switch (event.type) {
|
|
388
391
|
* case 'loaded':
|
|
389
392
|
* console.log('광고 로드 성공', event.data);
|
|
393
|
+
* setAdLoadStatus('loaded');
|
|
390
394
|
* break;
|
|
391
395
|
*
|
|
392
396
|
* case 'clicked':
|
|
@@ -395,6 +399,7 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
395
399
|
*
|
|
396
400
|
* case 'dismissed':
|
|
397
401
|
* console.log('광고 닫힘');
|
|
402
|
+
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
398
403
|
* break;
|
|
399
404
|
*
|
|
400
405
|
* case 'failedToShow':
|
|
@@ -416,11 +421,41 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
416
421
|
* });
|
|
417
422
|
*
|
|
418
423
|
* return cleanup;
|
|
424
|
+
* }, [navigation]);
|
|
425
|
+
*
|
|
426
|
+
* const showAd = useCallback(() => {
|
|
427
|
+
* if (GoogleAdMob.showAdMobInterstitialAd.isSupported() !== true) {
|
|
428
|
+
* return;
|
|
429
|
+
* }
|
|
430
|
+
*
|
|
431
|
+
* GoogleAdMob.showAdMobInterstitialAd({
|
|
432
|
+
* options: {
|
|
433
|
+
* adUnitId: AD_UNIT_ID,
|
|
434
|
+
* },
|
|
435
|
+
* onEvent: (event) => {
|
|
436
|
+
* switch (event.type) {
|
|
437
|
+
* case 'requested':
|
|
438
|
+
* console.log('광고 보여주기 요청 완료');
|
|
439
|
+
* break;
|
|
440
|
+
* }
|
|
441
|
+
* },
|
|
442
|
+
* onError: (error) => {
|
|
443
|
+
* console.error('광고 보여주기 실패', error);
|
|
444
|
+
* },
|
|
445
|
+
* });
|
|
419
446
|
* }, []);
|
|
420
447
|
*
|
|
448
|
+
* useFocusEffect(loadAd);
|
|
449
|
+
*
|
|
421
450
|
* return (
|
|
422
451
|
* <View>
|
|
423
|
-
* <Text>
|
|
452
|
+
* <Text>
|
|
453
|
+
* {adLoadStatus === 'not_loaded' && '광고 로드 하지 않음 '}
|
|
454
|
+
* {adLoadStatus === 'loaded' && '광고 로드 완료'}
|
|
455
|
+
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
456
|
+
* </Text>
|
|
457
|
+
*
|
|
458
|
+
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
424
459
|
* </View>
|
|
425
460
|
* );
|
|
426
461
|
* }
|
|
@@ -468,12 +503,64 @@ type ShowAdMobInterstitialAdParams = AdMobHandlerParams<ShowAdMobInterstitialAdO
|
|
|
468
503
|
* ### 버튼 눌러 불러온 전면 광고 보여주기
|
|
469
504
|
* ```tsx
|
|
470
505
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
471
|
-
* import {
|
|
506
|
+
* import { useFocusEffect } from '@react-native-bedrock/native/@react-navigation/native';
|
|
507
|
+
* import { useCallback, useState } from 'react';
|
|
508
|
+
* import { Button, Text, View } from 'react-native';
|
|
509
|
+
* import { useNavigation } from 'react-native-bedrock';
|
|
472
510
|
*
|
|
473
|
-
* const AD_UNIT_ID = '<
|
|
511
|
+
* const AD_UNIT_ID = '<AD_UNIT_ID>';
|
|
474
512
|
*
|
|
475
|
-
* function
|
|
476
|
-
* const
|
|
513
|
+
* export function GoogleAdmobInterstitialAdExample() {
|
|
514
|
+
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
515
|
+
* const navigation = useNavigation();
|
|
516
|
+
*
|
|
517
|
+
* const loadAd = useCallback(() => {
|
|
518
|
+
* if (GoogleAdMob.loadAdMobInterstitialAd.isSupported() !== true) {
|
|
519
|
+
* return;
|
|
520
|
+
* }
|
|
521
|
+
|
|
522
|
+
* const cleanup = GoogleAdMob.loadAdMobInterstitialAd({
|
|
523
|
+
* options: {
|
|
524
|
+
* adUnitId: AD_UNIT_ID,
|
|
525
|
+
* },
|
|
526
|
+
* onEvent: (event) => {
|
|
527
|
+
* switch (event.type) {
|
|
528
|
+
* case 'loaded':
|
|
529
|
+
* console.log('광고 로드 성공', event.data);
|
|
530
|
+
* setAdLoadStatus('loaded');
|
|
531
|
+
* break;
|
|
532
|
+
*
|
|
533
|
+
* case 'clicked':
|
|
534
|
+
* console.log('광고 클릭');
|
|
535
|
+
* break;
|
|
536
|
+
*
|
|
537
|
+
* case 'dismissed':
|
|
538
|
+
* console.log('광고 닫힘');
|
|
539
|
+
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
540
|
+
* break;
|
|
541
|
+
*
|
|
542
|
+
* case 'failedToShow':
|
|
543
|
+
* console.log('광고 보여주기 실패');
|
|
544
|
+
* break;
|
|
545
|
+
*
|
|
546
|
+
* case 'impression':
|
|
547
|
+
* console.log('광고 노출');
|
|
548
|
+
* break;
|
|
549
|
+
*
|
|
550
|
+
* case 'show':
|
|
551
|
+
* console.log('광고 컨텐츠 보여졌음');
|
|
552
|
+
* break;
|
|
553
|
+
* }
|
|
554
|
+
* },
|
|
555
|
+
* onError: (error) => {
|
|
556
|
+
* console.error('광고 불러오기 실패', error);
|
|
557
|
+
* },
|
|
558
|
+
* });
|
|
559
|
+
*
|
|
560
|
+
* return cleanup;
|
|
561
|
+
* }, [navigation]);
|
|
562
|
+
*
|
|
563
|
+
* const showAd = useCallback(() => {
|
|
477
564
|
* if (GoogleAdMob.showAdMobInterstitialAd.isSupported() !== true) {
|
|
478
565
|
* return;
|
|
479
566
|
* }
|
|
@@ -493,10 +580,20 @@ type ShowAdMobInterstitialAdParams = AdMobHandlerParams<ShowAdMobInterstitialAdO
|
|
|
493
580
|
* console.error('광고 보여주기 실패', error);
|
|
494
581
|
* },
|
|
495
582
|
* });
|
|
496
|
-
* }
|
|
583
|
+
* }, []);
|
|
584
|
+
*
|
|
585
|
+
* useFocusEffect(loadAd);
|
|
497
586
|
*
|
|
498
587
|
* return (
|
|
499
|
-
* <
|
|
588
|
+
* <View>
|
|
589
|
+
* <Text>
|
|
590
|
+
* {adLoadStatus === 'not_loaded' && '광고 로드 하지 않음 '}
|
|
591
|
+
* {adLoadStatus === 'loaded' && '광고 로드 완료'}
|
|
592
|
+
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
593
|
+
* </Text>
|
|
594
|
+
*
|
|
595
|
+
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
596
|
+
* </View>
|
|
500
597
|
* );
|
|
501
598
|
* }
|
|
502
599
|
* ```
|
|
@@ -543,16 +640,20 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
543
640
|
* @property {() => boolean} [isSupported] 현재 실행 중인 앱(예: 토스 앱, 개발용 샌드박스 앱 등)에서 Google AdMob 광고 기능을 지원하는지 확인하는 함수예요. 기능을 사용하기 전에 지원 여부를 확인해야 해요.
|
|
544
641
|
*
|
|
545
642
|
* @example
|
|
546
|
-
*
|
|
643
|
+
*
|
|
644
|
+
* ### 버튼 눌러 불러온 보상형 광고 보여주기
|
|
645
|
+
*
|
|
547
646
|
* ```tsx
|
|
548
647
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
549
|
-
* import {
|
|
550
|
-
* import {
|
|
648
|
+
* import { useCallback, useState } from 'react';
|
|
649
|
+
* import { Button, Text, View } from 'react-native';
|
|
551
650
|
*
|
|
552
|
-
* const AD_UNIT_ID = '<
|
|
651
|
+
* const AD_UNIT_ID = '<AD_UNIT_ID>';
|
|
553
652
|
*
|
|
554
|
-
* function
|
|
555
|
-
*
|
|
653
|
+
* export function GoogleAdmobRewardedAdExample() {
|
|
654
|
+
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
655
|
+
*
|
|
656
|
+
* const loadAd = useCallback(() => {
|
|
556
657
|
* if (GoogleAdMob.loadAdMobRewardedAd.isSupported() !== true) {
|
|
557
658
|
* return;
|
|
558
659
|
* }
|
|
@@ -562,9 +663,11 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
562
663
|
* adUnitId: AD_UNIT_ID,
|
|
563
664
|
* },
|
|
564
665
|
* onEvent: (event) => {
|
|
666
|
+
* console.log(event.type);
|
|
565
667
|
* switch (event.type) {
|
|
566
668
|
* case 'loaded':
|
|
567
669
|
* console.log('광고 로드 성공', event.data);
|
|
670
|
+
* setAdLoadStatus('loaded');
|
|
568
671
|
* break;
|
|
569
672
|
*
|
|
570
673
|
* case 'clicked':
|
|
@@ -600,9 +703,39 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
600
703
|
* return cleanup;
|
|
601
704
|
* }, []);
|
|
602
705
|
*
|
|
706
|
+
* const showAd = useCallback(() => {
|
|
707
|
+
* if (GoogleAdMob.showAdMobRewardedAd.isSupported() !== true) {
|
|
708
|
+
* return;
|
|
709
|
+
* }
|
|
710
|
+
*
|
|
711
|
+
* GoogleAdMob.showAdMobRewardedAd({
|
|
712
|
+
* options: {
|
|
713
|
+
* adUnitId: AD_UNIT_ID,
|
|
714
|
+
* },
|
|
715
|
+
* onEvent: (event) => {
|
|
716
|
+
* switch (event.type) {
|
|
717
|
+
* case 'requested':
|
|
718
|
+
* console.log('광고 보여주기 요청 완료');
|
|
719
|
+
* setAdLoadStatus('not_loaded');
|
|
720
|
+
* break;
|
|
721
|
+
* }
|
|
722
|
+
* },
|
|
723
|
+
* onError: (error) => {
|
|
724
|
+
* console.error('광고 보여주기 실패', error);
|
|
725
|
+
* },
|
|
726
|
+
* });
|
|
727
|
+
* }, []);
|
|
728
|
+
*
|
|
603
729
|
* return (
|
|
604
730
|
* <View>
|
|
605
|
-
* <Text>
|
|
731
|
+
* <Text>
|
|
732
|
+
* {adLoadStatus === 'not_loaded' && '광고 로드 하지 않음 '}
|
|
733
|
+
* {adLoadStatus === 'loaded' && '광고 로드 완료'}
|
|
734
|
+
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
735
|
+
* </Text>
|
|
736
|
+
*
|
|
737
|
+
* <Button title="Load Ad" onPress={loadAd} />
|
|
738
|
+
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
606
739
|
* </View>
|
|
607
740
|
* );
|
|
608
741
|
* }
|
|
@@ -648,14 +781,68 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
648
781
|
*
|
|
649
782
|
* @example
|
|
650
783
|
* ### 버튼 눌러 불러온 보상형 광고 보여주기
|
|
784
|
+
*
|
|
651
785
|
* ```tsx
|
|
652
786
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
653
|
-
* import {
|
|
787
|
+
* import { useCallback, useState } from 'react';
|
|
788
|
+
* import { Button, Text, View } from 'react-native';
|
|
654
789
|
*
|
|
655
|
-
* const AD_UNIT_ID = '<
|
|
790
|
+
* const AD_UNIT_ID = '<AD_UNIT_ID>';
|
|
656
791
|
*
|
|
657
|
-
* function
|
|
658
|
-
* const
|
|
792
|
+
* export function GoogleAdmobRewardedAdExample() {
|
|
793
|
+
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
794
|
+
*
|
|
795
|
+
* const loadAd = useCallback(() => {
|
|
796
|
+
* if (GoogleAdMob.loadAdMobRewardedAd.isSupported() !== true) {
|
|
797
|
+
* return;
|
|
798
|
+
* }
|
|
799
|
+
*
|
|
800
|
+
* const cleanup = GoogleAdMob.loadAdMobRewardedAd({
|
|
801
|
+
* options: {
|
|
802
|
+
* adUnitId: AD_UNIT_ID,
|
|
803
|
+
* },
|
|
804
|
+
* onEvent: (event) => {
|
|
805
|
+
* console.log(event.type);
|
|
806
|
+
* switch (event.type) {
|
|
807
|
+
* case 'loaded':
|
|
808
|
+
* console.log('광고 로드 성공', event.data);
|
|
809
|
+
* setAdLoadStatus('loaded');
|
|
810
|
+
* break;
|
|
811
|
+
*
|
|
812
|
+
* case 'clicked':
|
|
813
|
+
* console.log('광고 클릭');
|
|
814
|
+
* break;
|
|
815
|
+
*
|
|
816
|
+
* case 'dismissed':
|
|
817
|
+
* console.log('광고 닫힘');
|
|
818
|
+
* break;
|
|
819
|
+
*
|
|
820
|
+
* case 'failedToShow':
|
|
821
|
+
* console.log('광고 보여주기 실패');
|
|
822
|
+
* break;
|
|
823
|
+
*
|
|
824
|
+
* case 'impression':
|
|
825
|
+
* console.log('광고 노출');
|
|
826
|
+
* break;
|
|
827
|
+
*
|
|
828
|
+
* case 'show':
|
|
829
|
+
* console.log('광고 컨텐츠 보여졌음');
|
|
830
|
+
* break;
|
|
831
|
+
*
|
|
832
|
+
* case 'userEarnedReward':
|
|
833
|
+
* console.log('사용자가 광고 시청을 완료했음');
|
|
834
|
+
* break;
|
|
835
|
+
* }
|
|
836
|
+
* },
|
|
837
|
+
* onError: (error) => {
|
|
838
|
+
* console.error('광고 불러오기 실패', error);
|
|
839
|
+
* },
|
|
840
|
+
* });
|
|
841
|
+
*
|
|
842
|
+
* return cleanup;
|
|
843
|
+
* }, []);
|
|
844
|
+
*
|
|
845
|
+
* const showAd = useCallback(() => {
|
|
659
846
|
* if (GoogleAdMob.showAdMobRewardedAd.isSupported() !== true) {
|
|
660
847
|
* return;
|
|
661
848
|
* }
|
|
@@ -668,6 +855,7 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
668
855
|
* switch (event.type) {
|
|
669
856
|
* case 'requested':
|
|
670
857
|
* console.log('광고 보여주기 요청 완료');
|
|
858
|
+
* setAdLoadStatus('not_loaded');
|
|
671
859
|
* break;
|
|
672
860
|
* }
|
|
673
861
|
* },
|
|
@@ -675,10 +863,19 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
675
863
|
* console.error('광고 보여주기 실패', error);
|
|
676
864
|
* },
|
|
677
865
|
* });
|
|
678
|
-
* }
|
|
866
|
+
* }, []);
|
|
679
867
|
*
|
|
680
868
|
* return (
|
|
681
|
-
* <
|
|
869
|
+
* <View>
|
|
870
|
+
* <Text>
|
|
871
|
+
* {adLoadStatus === 'not_loaded' && '광고 로드 하지 않음 '}
|
|
872
|
+
* {adLoadStatus === 'loaded' && '광고 로드 완료'}
|
|
873
|
+
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
874
|
+
* </Text>
|
|
875
|
+
*
|
|
876
|
+
* <Button title="Load Ad" onPress={loadAd} />
|
|
877
|
+
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
878
|
+
* </View>
|
|
682
879
|
* );
|
|
683
880
|
* }
|
|
684
881
|
* ```
|
package/dist/index.d.ts
CHANGED
|
@@ -149,10 +149,8 @@ interface StartUpdateLocationSubscription extends EmitterSubscription {
|
|
|
149
149
|
* @kind typedef
|
|
150
150
|
* @description
|
|
151
151
|
* 디바이스의 위치 정보 변경을 감지해요
|
|
152
|
-
* @extends {EventEmitterSchema<'updateLocation', [Location]>}
|
|
153
152
|
*/
|
|
154
|
-
|
|
155
|
-
}
|
|
153
|
+
type UpdateLocationEventEmitter = EventEmitterSchema<'updateLocation', [Location]>;
|
|
156
154
|
/**
|
|
157
155
|
* @public
|
|
158
156
|
* @category 위치 정보
|
|
@@ -365,20 +363,25 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
365
363
|
* @property {() => boolean} [isSupported] 현재 실행 중인 앱(예: 토스 앱, 개발용 샌드박스 앱 등)에서 Google AdMob 광고 기능을 지원하는지 확인하는 함수예요. 기능을 사용하기 전에 지원 여부를 확인해야 해요.
|
|
366
364
|
*
|
|
367
365
|
* @example
|
|
368
|
-
* ###
|
|
366
|
+
* ### 버튼 눌러 불러온 전면 광고 보여주기
|
|
369
367
|
* ```tsx
|
|
370
368
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
371
|
-
* import {
|
|
372
|
-
* import {
|
|
369
|
+
* import { useFocusEffect } from '@react-native-bedrock/native/@react-navigation/native';
|
|
370
|
+
* import { useCallback, useState } from 'react';
|
|
371
|
+
* import { Button, Text, View } from 'react-native';
|
|
372
|
+
* import { useNavigation } from 'react-native-bedrock';
|
|
373
373
|
*
|
|
374
|
-
* const AD_UNIT_ID = '<
|
|
374
|
+
* const AD_UNIT_ID = '<AD_UNIT_ID>';
|
|
375
375
|
*
|
|
376
|
-
* function
|
|
377
|
-
*
|
|
376
|
+
* export function GoogleAdmobInterstitialAdExample() {
|
|
377
|
+
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
378
|
+
* const navigation = useNavigation();
|
|
379
|
+
*
|
|
380
|
+
* const loadAd = useCallback(() => {
|
|
378
381
|
* if (GoogleAdMob.loadAdMobInterstitialAd.isSupported() !== true) {
|
|
379
382
|
* return;
|
|
380
383
|
* }
|
|
381
|
-
|
|
384
|
+
|
|
382
385
|
* const cleanup = GoogleAdMob.loadAdMobInterstitialAd({
|
|
383
386
|
* options: {
|
|
384
387
|
* adUnitId: AD_UNIT_ID,
|
|
@@ -387,6 +390,7 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
387
390
|
* switch (event.type) {
|
|
388
391
|
* case 'loaded':
|
|
389
392
|
* console.log('광고 로드 성공', event.data);
|
|
393
|
+
* setAdLoadStatus('loaded');
|
|
390
394
|
* break;
|
|
391
395
|
*
|
|
392
396
|
* case 'clicked':
|
|
@@ -395,6 +399,7 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
395
399
|
*
|
|
396
400
|
* case 'dismissed':
|
|
397
401
|
* console.log('광고 닫힘');
|
|
402
|
+
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
398
403
|
* break;
|
|
399
404
|
*
|
|
400
405
|
* case 'failedToShow':
|
|
@@ -416,11 +421,41 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
416
421
|
* });
|
|
417
422
|
*
|
|
418
423
|
* return cleanup;
|
|
424
|
+
* }, [navigation]);
|
|
425
|
+
*
|
|
426
|
+
* const showAd = useCallback(() => {
|
|
427
|
+
* if (GoogleAdMob.showAdMobInterstitialAd.isSupported() !== true) {
|
|
428
|
+
* return;
|
|
429
|
+
* }
|
|
430
|
+
*
|
|
431
|
+
* GoogleAdMob.showAdMobInterstitialAd({
|
|
432
|
+
* options: {
|
|
433
|
+
* adUnitId: AD_UNIT_ID,
|
|
434
|
+
* },
|
|
435
|
+
* onEvent: (event) => {
|
|
436
|
+
* switch (event.type) {
|
|
437
|
+
* case 'requested':
|
|
438
|
+
* console.log('광고 보여주기 요청 완료');
|
|
439
|
+
* break;
|
|
440
|
+
* }
|
|
441
|
+
* },
|
|
442
|
+
* onError: (error) => {
|
|
443
|
+
* console.error('광고 보여주기 실패', error);
|
|
444
|
+
* },
|
|
445
|
+
* });
|
|
419
446
|
* }, []);
|
|
420
447
|
*
|
|
448
|
+
* useFocusEffect(loadAd);
|
|
449
|
+
*
|
|
421
450
|
* return (
|
|
422
451
|
* <View>
|
|
423
|
-
* <Text>
|
|
452
|
+
* <Text>
|
|
453
|
+
* {adLoadStatus === 'not_loaded' && '광고 로드 하지 않음 '}
|
|
454
|
+
* {adLoadStatus === 'loaded' && '광고 로드 완료'}
|
|
455
|
+
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
456
|
+
* </Text>
|
|
457
|
+
*
|
|
458
|
+
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
424
459
|
* </View>
|
|
425
460
|
* );
|
|
426
461
|
* }
|
|
@@ -468,12 +503,64 @@ type ShowAdMobInterstitialAdParams = AdMobHandlerParams<ShowAdMobInterstitialAdO
|
|
|
468
503
|
* ### 버튼 눌러 불러온 전면 광고 보여주기
|
|
469
504
|
* ```tsx
|
|
470
505
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
471
|
-
* import {
|
|
506
|
+
* import { useFocusEffect } from '@react-native-bedrock/native/@react-navigation/native';
|
|
507
|
+
* import { useCallback, useState } from 'react';
|
|
508
|
+
* import { Button, Text, View } from 'react-native';
|
|
509
|
+
* import { useNavigation } from 'react-native-bedrock';
|
|
472
510
|
*
|
|
473
|
-
* const AD_UNIT_ID = '<
|
|
511
|
+
* const AD_UNIT_ID = '<AD_UNIT_ID>';
|
|
474
512
|
*
|
|
475
|
-
* function
|
|
476
|
-
* const
|
|
513
|
+
* export function GoogleAdmobInterstitialAdExample() {
|
|
514
|
+
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
515
|
+
* const navigation = useNavigation();
|
|
516
|
+
*
|
|
517
|
+
* const loadAd = useCallback(() => {
|
|
518
|
+
* if (GoogleAdMob.loadAdMobInterstitialAd.isSupported() !== true) {
|
|
519
|
+
* return;
|
|
520
|
+
* }
|
|
521
|
+
|
|
522
|
+
* const cleanup = GoogleAdMob.loadAdMobInterstitialAd({
|
|
523
|
+
* options: {
|
|
524
|
+
* adUnitId: AD_UNIT_ID,
|
|
525
|
+
* },
|
|
526
|
+
* onEvent: (event) => {
|
|
527
|
+
* switch (event.type) {
|
|
528
|
+
* case 'loaded':
|
|
529
|
+
* console.log('광고 로드 성공', event.data);
|
|
530
|
+
* setAdLoadStatus('loaded');
|
|
531
|
+
* break;
|
|
532
|
+
*
|
|
533
|
+
* case 'clicked':
|
|
534
|
+
* console.log('광고 클릭');
|
|
535
|
+
* break;
|
|
536
|
+
*
|
|
537
|
+
* case 'dismissed':
|
|
538
|
+
* console.log('광고 닫힘');
|
|
539
|
+
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
540
|
+
* break;
|
|
541
|
+
*
|
|
542
|
+
* case 'failedToShow':
|
|
543
|
+
* console.log('광고 보여주기 실패');
|
|
544
|
+
* break;
|
|
545
|
+
*
|
|
546
|
+
* case 'impression':
|
|
547
|
+
* console.log('광고 노출');
|
|
548
|
+
* break;
|
|
549
|
+
*
|
|
550
|
+
* case 'show':
|
|
551
|
+
* console.log('광고 컨텐츠 보여졌음');
|
|
552
|
+
* break;
|
|
553
|
+
* }
|
|
554
|
+
* },
|
|
555
|
+
* onError: (error) => {
|
|
556
|
+
* console.error('광고 불러오기 실패', error);
|
|
557
|
+
* },
|
|
558
|
+
* });
|
|
559
|
+
*
|
|
560
|
+
* return cleanup;
|
|
561
|
+
* }, [navigation]);
|
|
562
|
+
*
|
|
563
|
+
* const showAd = useCallback(() => {
|
|
477
564
|
* if (GoogleAdMob.showAdMobInterstitialAd.isSupported() !== true) {
|
|
478
565
|
* return;
|
|
479
566
|
* }
|
|
@@ -493,10 +580,20 @@ type ShowAdMobInterstitialAdParams = AdMobHandlerParams<ShowAdMobInterstitialAdO
|
|
|
493
580
|
* console.error('광고 보여주기 실패', error);
|
|
494
581
|
* },
|
|
495
582
|
* });
|
|
496
|
-
* }
|
|
583
|
+
* }, []);
|
|
584
|
+
*
|
|
585
|
+
* useFocusEffect(loadAd);
|
|
497
586
|
*
|
|
498
587
|
* return (
|
|
499
|
-
* <
|
|
588
|
+
* <View>
|
|
589
|
+
* <Text>
|
|
590
|
+
* {adLoadStatus === 'not_loaded' && '광고 로드 하지 않음 '}
|
|
591
|
+
* {adLoadStatus === 'loaded' && '광고 로드 완료'}
|
|
592
|
+
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
593
|
+
* </Text>
|
|
594
|
+
*
|
|
595
|
+
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
596
|
+
* </View>
|
|
500
597
|
* );
|
|
501
598
|
* }
|
|
502
599
|
* ```
|
|
@@ -543,16 +640,20 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
543
640
|
* @property {() => boolean} [isSupported] 현재 실행 중인 앱(예: 토스 앱, 개발용 샌드박스 앱 등)에서 Google AdMob 광고 기능을 지원하는지 확인하는 함수예요. 기능을 사용하기 전에 지원 여부를 확인해야 해요.
|
|
544
641
|
*
|
|
545
642
|
* @example
|
|
546
|
-
*
|
|
643
|
+
*
|
|
644
|
+
* ### 버튼 눌러 불러온 보상형 광고 보여주기
|
|
645
|
+
*
|
|
547
646
|
* ```tsx
|
|
548
647
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
549
|
-
* import {
|
|
550
|
-
* import {
|
|
648
|
+
* import { useCallback, useState } from 'react';
|
|
649
|
+
* import { Button, Text, View } from 'react-native';
|
|
551
650
|
*
|
|
552
|
-
* const AD_UNIT_ID = '<
|
|
651
|
+
* const AD_UNIT_ID = '<AD_UNIT_ID>';
|
|
553
652
|
*
|
|
554
|
-
* function
|
|
555
|
-
*
|
|
653
|
+
* export function GoogleAdmobRewardedAdExample() {
|
|
654
|
+
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
655
|
+
*
|
|
656
|
+
* const loadAd = useCallback(() => {
|
|
556
657
|
* if (GoogleAdMob.loadAdMobRewardedAd.isSupported() !== true) {
|
|
557
658
|
* return;
|
|
558
659
|
* }
|
|
@@ -562,9 +663,11 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
562
663
|
* adUnitId: AD_UNIT_ID,
|
|
563
664
|
* },
|
|
564
665
|
* onEvent: (event) => {
|
|
666
|
+
* console.log(event.type);
|
|
565
667
|
* switch (event.type) {
|
|
566
668
|
* case 'loaded':
|
|
567
669
|
* console.log('광고 로드 성공', event.data);
|
|
670
|
+
* setAdLoadStatus('loaded');
|
|
568
671
|
* break;
|
|
569
672
|
*
|
|
570
673
|
* case 'clicked':
|
|
@@ -600,9 +703,39 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
600
703
|
* return cleanup;
|
|
601
704
|
* }, []);
|
|
602
705
|
*
|
|
706
|
+
* const showAd = useCallback(() => {
|
|
707
|
+
* if (GoogleAdMob.showAdMobRewardedAd.isSupported() !== true) {
|
|
708
|
+
* return;
|
|
709
|
+
* }
|
|
710
|
+
*
|
|
711
|
+
* GoogleAdMob.showAdMobRewardedAd({
|
|
712
|
+
* options: {
|
|
713
|
+
* adUnitId: AD_UNIT_ID,
|
|
714
|
+
* },
|
|
715
|
+
* onEvent: (event) => {
|
|
716
|
+
* switch (event.type) {
|
|
717
|
+
* case 'requested':
|
|
718
|
+
* console.log('광고 보여주기 요청 완료');
|
|
719
|
+
* setAdLoadStatus('not_loaded');
|
|
720
|
+
* break;
|
|
721
|
+
* }
|
|
722
|
+
* },
|
|
723
|
+
* onError: (error) => {
|
|
724
|
+
* console.error('광고 보여주기 실패', error);
|
|
725
|
+
* },
|
|
726
|
+
* });
|
|
727
|
+
* }, []);
|
|
728
|
+
*
|
|
603
729
|
* return (
|
|
604
730
|
* <View>
|
|
605
|
-
* <Text>
|
|
731
|
+
* <Text>
|
|
732
|
+
* {adLoadStatus === 'not_loaded' && '광고 로드 하지 않음 '}
|
|
733
|
+
* {adLoadStatus === 'loaded' && '광고 로드 완료'}
|
|
734
|
+
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
735
|
+
* </Text>
|
|
736
|
+
*
|
|
737
|
+
* <Button title="Load Ad" onPress={loadAd} />
|
|
738
|
+
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
606
739
|
* </View>
|
|
607
740
|
* );
|
|
608
741
|
* }
|
|
@@ -648,14 +781,68 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
648
781
|
*
|
|
649
782
|
* @example
|
|
650
783
|
* ### 버튼 눌러 불러온 보상형 광고 보여주기
|
|
784
|
+
*
|
|
651
785
|
* ```tsx
|
|
652
786
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
653
|
-
* import {
|
|
787
|
+
* import { useCallback, useState } from 'react';
|
|
788
|
+
* import { Button, Text, View } from 'react-native';
|
|
654
789
|
*
|
|
655
|
-
* const AD_UNIT_ID = '<
|
|
790
|
+
* const AD_UNIT_ID = '<AD_UNIT_ID>';
|
|
656
791
|
*
|
|
657
|
-
* function
|
|
658
|
-
* const
|
|
792
|
+
* export function GoogleAdmobRewardedAdExample() {
|
|
793
|
+
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
794
|
+
*
|
|
795
|
+
* const loadAd = useCallback(() => {
|
|
796
|
+
* if (GoogleAdMob.loadAdMobRewardedAd.isSupported() !== true) {
|
|
797
|
+
* return;
|
|
798
|
+
* }
|
|
799
|
+
*
|
|
800
|
+
* const cleanup = GoogleAdMob.loadAdMobRewardedAd({
|
|
801
|
+
* options: {
|
|
802
|
+
* adUnitId: AD_UNIT_ID,
|
|
803
|
+
* },
|
|
804
|
+
* onEvent: (event) => {
|
|
805
|
+
* console.log(event.type);
|
|
806
|
+
* switch (event.type) {
|
|
807
|
+
* case 'loaded':
|
|
808
|
+
* console.log('광고 로드 성공', event.data);
|
|
809
|
+
* setAdLoadStatus('loaded');
|
|
810
|
+
* break;
|
|
811
|
+
*
|
|
812
|
+
* case 'clicked':
|
|
813
|
+
* console.log('광고 클릭');
|
|
814
|
+
* break;
|
|
815
|
+
*
|
|
816
|
+
* case 'dismissed':
|
|
817
|
+
* console.log('광고 닫힘');
|
|
818
|
+
* break;
|
|
819
|
+
*
|
|
820
|
+
* case 'failedToShow':
|
|
821
|
+
* console.log('광고 보여주기 실패');
|
|
822
|
+
* break;
|
|
823
|
+
*
|
|
824
|
+
* case 'impression':
|
|
825
|
+
* console.log('광고 노출');
|
|
826
|
+
* break;
|
|
827
|
+
*
|
|
828
|
+
* case 'show':
|
|
829
|
+
* console.log('광고 컨텐츠 보여졌음');
|
|
830
|
+
* break;
|
|
831
|
+
*
|
|
832
|
+
* case 'userEarnedReward':
|
|
833
|
+
* console.log('사용자가 광고 시청을 완료했음');
|
|
834
|
+
* break;
|
|
835
|
+
* }
|
|
836
|
+
* },
|
|
837
|
+
* onError: (error) => {
|
|
838
|
+
* console.error('광고 불러오기 실패', error);
|
|
839
|
+
* },
|
|
840
|
+
* });
|
|
841
|
+
*
|
|
842
|
+
* return cleanup;
|
|
843
|
+
* }, []);
|
|
844
|
+
*
|
|
845
|
+
* const showAd = useCallback(() => {
|
|
659
846
|
* if (GoogleAdMob.showAdMobRewardedAd.isSupported() !== true) {
|
|
660
847
|
* return;
|
|
661
848
|
* }
|
|
@@ -668,6 +855,7 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
668
855
|
* switch (event.type) {
|
|
669
856
|
* case 'requested':
|
|
670
857
|
* console.log('광고 보여주기 요청 완료');
|
|
858
|
+
* setAdLoadStatus('not_loaded');
|
|
671
859
|
* break;
|
|
672
860
|
* }
|
|
673
861
|
* },
|
|
@@ -675,10 +863,19 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
675
863
|
* console.error('광고 보여주기 실패', error);
|
|
676
864
|
* },
|
|
677
865
|
* });
|
|
678
|
-
* }
|
|
866
|
+
* }, []);
|
|
679
867
|
*
|
|
680
868
|
* return (
|
|
681
|
-
* <
|
|
869
|
+
* <View>
|
|
870
|
+
* <Text>
|
|
871
|
+
* {adLoadStatus === 'not_loaded' && '광고 로드 하지 않음 '}
|
|
872
|
+
* {adLoadStatus === 'loaded' && '광고 로드 완료'}
|
|
873
|
+
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
874
|
+
* </Text>
|
|
875
|
+
*
|
|
876
|
+
* <Button title="Load Ad" onPress={loadAd} />
|
|
877
|
+
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
878
|
+
* </View>
|
|
682
879
|
* );
|
|
683
880
|
* }
|
|
684
881
|
* ```
|
package/dist/index.js
CHANGED
|
@@ -24,14 +24,19 @@ var env = {
|
|
|
24
24
|
// src/native-modules/tossCore.ts
|
|
25
25
|
import { NativeModules as NativeModules2 } from "react-native";
|
|
26
26
|
|
|
27
|
-
// src/native-modules/isMinVersionSupported.ts
|
|
28
|
-
import { Platform } from "react-native";
|
|
29
|
-
|
|
30
27
|
// src/native-modules/AppsInTossModule.ts
|
|
31
28
|
import { NativeModules } from "react-native";
|
|
32
29
|
var AppsInTossModuleInstance = NativeModules.AppsInTossModule;
|
|
33
30
|
var AppsInTossModule = AppsInTossModuleInstance;
|
|
34
31
|
|
|
32
|
+
// src/native-modules/getOperationalEnvironment.ts
|
|
33
|
+
function getOperationalEnvironment() {
|
|
34
|
+
return AppsInTossModule.operationalEnvironment;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// src/native-modules/isMinVersionSupported.ts
|
|
38
|
+
import { Platform } from "react-native";
|
|
39
|
+
|
|
35
40
|
// src/utils/compareVersion.ts
|
|
36
41
|
var SEMVER_REGEX = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\\-]+(?:\.[\da-z\\-]+)*))?(?:\+[\da-z\\-]+(?:\.[\da-z\\-]+)*)?)?)?$/i;
|
|
37
42
|
var isWildcard = (val) => ["*", "x", "X"].includes(val);
|
|
@@ -124,7 +129,8 @@ function isMinVersionSupported(minVersions) {
|
|
|
124
129
|
var TossCoreModule = NativeModules2.TossCoreModule;
|
|
125
130
|
function tossCoreEventLog(params) {
|
|
126
131
|
const supported = isMinVersionSupported({ ios: "5.210.0", android: "5.210.0" });
|
|
127
|
-
|
|
132
|
+
const isSandbox = getOperationalEnvironment() === "sandbox";
|
|
133
|
+
if (!supported || isSandbox) {
|
|
128
134
|
return;
|
|
129
135
|
}
|
|
130
136
|
TossCoreModule.eventLog({
|
|
@@ -253,7 +259,9 @@ var UpdateLocationEvent = class extends BedrockEventDefinition2 {
|
|
|
253
259
|
}
|
|
254
260
|
};
|
|
255
261
|
remove() {
|
|
256
|
-
--this.subscriptionCount === 0
|
|
262
|
+
if (--this.subscriptionCount === 0) {
|
|
263
|
+
AppsInTossModuleInstance.stopUpdateLocation({});
|
|
264
|
+
}
|
|
257
265
|
this.ref.remove();
|
|
258
266
|
}
|
|
259
267
|
listener(options, onEvent, onError) {
|
|
@@ -590,11 +598,6 @@ function startUpdateLocation(eventParams) {
|
|
|
590
598
|
function noop() {
|
|
591
599
|
}
|
|
592
600
|
|
|
593
|
-
// src/native-modules/getOperationalEnvironment.ts
|
|
594
|
-
function getOperationalEnvironment() {
|
|
595
|
-
return AppsInTossModule.operationalEnvironment;
|
|
596
|
-
}
|
|
597
|
-
|
|
598
601
|
// src/native-modules/ads/googleAdMob.ts
|
|
599
602
|
function loadAdMobInterstitialAd(params) {
|
|
600
603
|
if (!loadAdMobInterstitialAd.isSupported()) {
|
|
@@ -1145,8 +1148,6 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
1145
1148
|
loadAdMobRewardedAd: GoogleAdMob.loadAdMobRewardedAd,
|
|
1146
1149
|
showAdMobRewardedAd: GoogleAdMob.showAdMobRewardedAd
|
|
1147
1150
|
},
|
|
1148
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1149
|
-
// @ts-expect-error
|
|
1150
1151
|
constantHandlerMap: {
|
|
1151
1152
|
...bedrockConstantBridges,
|
|
1152
1153
|
...constant_bridges_exports,
|
|
@@ -1160,8 +1161,6 @@ function WebView({ type, local, onMessage, ...props }) {
|
|
|
1160
1161
|
/** env */
|
|
1161
1162
|
getDeploymentId: env.getDeploymentId
|
|
1162
1163
|
},
|
|
1163
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1164
|
-
// @ts-expect-error
|
|
1165
1164
|
asyncHandlerMap: {
|
|
1166
1165
|
...bedrockAsyncBridges,
|
|
1167
1166
|
...async_bridges_exports,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apps-in-toss/framework",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.26",
|
|
5
5
|
"description": "The framework for Apps In Toss",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"prepack": "yarn build",
|
|
@@ -57,30 +57,30 @@
|
|
|
57
57
|
"ait": "./bin/ait.js"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@apps-in-toss/analytics": "0.0.
|
|
61
|
-
"@apps-in-toss/cli": "0.0.
|
|
62
|
-
"@apps-in-toss/plugins": "0.0.
|
|
60
|
+
"@apps-in-toss/analytics": "0.0.26",
|
|
61
|
+
"@apps-in-toss/cli": "0.0.26",
|
|
62
|
+
"@apps-in-toss/plugins": "0.0.26",
|
|
63
63
|
"es-hangul": "^2.3.2"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@react-native-bedrock/mpack-next": "0.0.
|
|
67
|
-
"@react-native-bedrock/native": "0.0.
|
|
66
|
+
"@react-native-bedrock/mpack-next": "0.0.24",
|
|
67
|
+
"@react-native-bedrock/native": "0.0.24",
|
|
68
|
+
"@react-native-bedrock/plugin-core": "0.0.24",
|
|
69
|
+
"@react-native-bedrock/utils": "0.0.24",
|
|
68
70
|
"@toss-design-system/react-native": "^0.5.0",
|
|
69
71
|
"@types/kill-port": "^2.0.1",
|
|
70
72
|
"@types/react": "18.3.3",
|
|
71
|
-
"@types/yauzl": "^2.10.3",
|
|
72
73
|
"es-toolkit": "^1.34.1",
|
|
73
74
|
"eslint": "^9.7.0",
|
|
74
75
|
"execa": "^9.5.2",
|
|
75
76
|
"kill-port": "^2.0.1",
|
|
76
77
|
"react": "18.2.0",
|
|
77
78
|
"react-native": "0.72.6",
|
|
78
|
-
"react-native-bedrock": "0.0.
|
|
79
|
+
"react-native-bedrock": "0.0.24",
|
|
79
80
|
"tsup": "^8.3.5",
|
|
80
|
-
"typescript": "
|
|
81
|
+
"typescript": "5.8.3",
|
|
81
82
|
"vitest": "^3.0.3",
|
|
82
|
-
"workspace-tools": "^0.38.2"
|
|
83
|
-
"yauzl": "^3.2.0"
|
|
83
|
+
"workspace-tools": "^0.38.2"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
86
|
"@react-native-bedrock/native": ">= 0.0.18",
|
|
@@ -93,5 +93,5 @@
|
|
|
93
93
|
"publishConfig": {
|
|
94
94
|
"access": "public"
|
|
95
95
|
},
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "8df951171a6a432852d863459d724224a0680e7d"
|
|
97
97
|
}
|
package/src/async-bridges.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * from './native-modules/setClipboardText
|
|
2
|
-
export * from './native-modules/getClipboardText
|
|
3
|
-
export * from './native-modules/fetchContacts
|
|
4
|
-
export * from './native-modules/fetchAlbumPhotos
|
|
5
|
-
export * from './native-modules/getCurrentLocation
|
|
6
|
-
export * from './native-modules/openCamera
|
|
7
|
-
export * from './native-modules/appLogin
|
|
8
|
-
export * from './native-modules/checkoutPayment
|
|
9
|
-
export * from './native-modules/eventLog
|
|
10
|
-
export * from './native-modules/getTossShareLink
|
|
1
|
+
export * from './native-modules/setClipboardText';
|
|
2
|
+
export * from './native-modules/getClipboardText';
|
|
3
|
+
export * from './native-modules/fetchContacts';
|
|
4
|
+
export * from './native-modules/fetchAlbumPhotos';
|
|
5
|
+
export * from './native-modules/getCurrentLocation';
|
|
6
|
+
export * from './native-modules/openCamera';
|
|
7
|
+
export * from './native-modules/appLogin';
|
|
8
|
+
export * from './native-modules/checkoutPayment';
|
|
9
|
+
export * from './native-modules/eventLog';
|
|
10
|
+
export * from './native-modules/getTossShareLink';
|
package/src/constant-bridges.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './native-modules/getOperationalEnvironment
|
|
2
|
-
export * from './native-modules/getTossAppVersion
|
|
3
|
-
export * from './native-modules/getDeviceId
|
|
1
|
+
export * from './native-modules/getOperationalEnvironment';
|
|
2
|
+
export * from './native-modules/getTossAppVersion';
|
|
3
|
+
export * from './native-modules/getDeviceId';
|
package/src/event-bridges.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './native-event-emitter/startUpdateLocation
|
|
1
|
+
export * from './native-event-emitter/startUpdateLocation';
|