카메라 (Camera)
카메라 권한 확인 및 QR코드, 바코드 스캔 기능을 제공하는 모듈입니다.
개요
appify.camera는 네이티브 카메라를 활용한 바코드 스캔 기능을 제공합니다. 일회성 스캔과 지속적인 스캔 구독 두 가지 방식을 지원하며, 카메라 접근 전에 반드시 권한을 확인해야 합니다. QR코드, 바코드 인식이 필요한 재고 관리, 결제, 출입 확인 등의 시나리오에서 사용합니다.
API
checkPermission(): Promise<boolean>
카메라 접근 권한 상태를 확인하고, 아직 요청하지 않은 경우 시스템 권한 요청 다이얼로그를 표시합니다.
매개변수
없음
반환값: Promise<boolean> - 카메라 권한 허용 여부
예제
import { appify } from '@nolraunsoft/appify-sdk';
const isAllowed = await appify.camera.checkPermission();
if (!isAllowed) {
console.log('카메라 권한이 거부되었습니다.');
}
openScanner(): Promise<BarcodeScanResult | null>
네이티브 바코드 스캐너 화면을 엽니다. 사용자가 코드를 스캔하면 결과를 반환하고, 권한이 없거나 스캔을 취소하면 null을 반환합니다.
매개변수
없음
반환값: Promise<BarcodeScanResult | null> - 스캔 결과 객체, 권한 없음 또는 취소 시 null
| 필드 | 타입 | 설명 |
|---|---|---|
| data | string | 스캔된 코드의 문자열 데이터 |
| type | string | undefined | 바코드 형식 (예: 'QR_CODE', 'EAN_13') |
예제
import { appify } from '@nolraunsoft/appify-sdk';
const result = await appify.camera.openScanner();
if (result) {
console.log(`스캔 결과: ${result.data}`);
}
onScan(callback: (result: BarcodeScanResult) => void): Subscription
바코드 스캔 결과를 지속적으로 수신하는 구독을 등록합니다. 스캐너가 열려 있는 동안 스캔할 때마다 콜백이 호출됩니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
| callback | (result: BarcodeScanResult) => void | 예 | 스캔 결과를 수신할 콜백 함수 |
반환값: Subscription - 구독 해제를 위한 객체 (subscription.unsubscribe() 호출로 해제)
예제
import { appify } from '@nolraunsoft/appify-sdk';
const subscription = appify.camera.onScan((result) => {
console.log('스캔됨:', result.data);
});
// 구독 해제
subscription.unsubscribe();
scanOnce(timeout?: number): Promise<BarcodeScanResult>
스캐너를 열고 한 번만 스캔한 후 자동으로 구독을 해제합니다. 단일 스캔이 필요한 경우 onScan보다 간편하게 사용할 수 있습니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
| timeout | number | 아니오 | 스캔 대기 최대 시간 (밀리초). 초과 시 예외 발생 |
반환값: Promise<BarcodeScanResult> - 스캔 결과 객체
예제
import { appify } from '@nolraunsoft/appify-sdk';
const result = await appify.camera.scanOnce(10000); // 10초 내 스캔
console.log(`스캔 결과: ${result.data}`);