본문으로 건너뛰기

카메라 (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

필드타입설명
datastring스캔된 코드의 문자열 데이터
typestring | 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보다 간편하게 사용할 수 있습니다.

매개변수

이름타입필수설명
timeoutnumber아니오스캔 대기 최대 시간 (밀리초). 초과 시 예외 발생

반환값: Promise<BarcodeScanResult> - 스캔 결과 객체

예제

import { appify } from '@nolraunsoft/appify-sdk';

const result = await appify.camera.scanOnce(10000); // 10초 내 스캔
console.log(`스캔 결과: ${result.data}`);