@koreacreditdata/pigeon v0.1.81
Pigeon: 캐시노트 앱 ↔︎ 웹 인터페이스
Features
- 앱으로의 링크, 앱스토어로의 링크
- userAgent string을 기반으로 하는 여러 유틸리티 함수들
- isIos, isAndroid, isAppSupportedOS, isKakaoBrowser
- isAndroidAppWebView, isIosAppWebView, isAppWebView
- platform → web | ios | android
- appVersion
- isEnoughForTargetAppVersion, hasAppFeature → 2.0 배포 시점에는 필요 없으나 이후 앱 버전 기준으로 피처 가능 여부 체크를 해야 하면 쓰일 것
- 캐시노트 2.0 앱을 열 수 있는 함수 (via URL Scheme)
- 웹이 앱의 특정 기능을 호출하기 위한 핸들러 함수들
- 앱이 웹의 특정 기능을 호출하기 위한
window.CashntoteWebInterface.executeCallback
askPinNumber
처럼 앱이 뭔가 웹에게 알려줘야 하는 핸들러를 호출할 때 콜백을 함께 넘기면 그걸 등록해두었다가 실행하는 구조
- 바텀시트/팝업 등 안드로이드 앱에서 백버튼 눌러서 “닫을” 수 있는 UI를 통제하기 위한
widow.Popup
- 바텀시트 등을 여는 코드에서
window.Pupup.register
하면서closeCallback
을 함께 넘기면, 앱이 백버튼 캐치해서window.Popup.close
를 호출했을 때closeCallback
을 실행 (하단 예시 코드 스니펫 참조)
- 바텀시트 등을 여는 코드에서
export default function BottomSheet({
name,
eventProps,
onClose,
...props
}: Props) {
const handleClose = React.useCallback(() => {
window.Popup.unregister();
onClose();
}, [onClose]);
React.useEffect(() => {
if (props.opened) {
if (window.Popup.isOpened()) return;
window.Popup.register(handleClose);
}
}, [props.opened, handleClose]);
React.useEffect(
() => () => {
if (props.opened) {
window.Popup.unregister();
}
},
[props.opened],
);
return createPortal(
<BaseBottomSheet onClose={handleClose} {...props} />,
rootElement!,
);
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago