## 빌드 방법
NOL Open Platform은 모바일 앱과 웹뷰 간의 통신을 위한 JavaScript SDK입니다. iOS와 Android 네이티브 앱에서 웹뷰로 로드되는 웹 페이지에서 사용할 수 있습니다.
- 인증: 챌린지-응답에 필요한 값과 회원키를 반환
- 로그인 상태 확인: NOL 앱의 로그인 상태를 확인
- 결제: 결제 웹뷰 열기
- 웹뷰 제어: 웹뷰 닫기 기능
이 SDK는 iOS/Android 네이티브 앱의 웹뷰 환경에서만 동작합니다.
- iOS 앱 내 웹뷰
- Android 앱 내 웹뷰
웹 브라우저 환경에서 사용 시 다음과 같이 동작합니다:
- 자동으로 isSuccess: false 응답 반환
- 콘솔에 에러 메시지 출력: [NolAppBridge] 웹 환경에서는 사용할 수 없습니다. iOS/Android 앱 환경에서만 사용 가능합니다.
예시:
``javascript`
// 웹 브라우저에서 실행 시
const result = await NolAppBridge.setup();
// 콘솔: ❌ [NolAppBridge] 웹 환경에서는 사용할 수 없습니다. iOS/Android 앱 환경에서만 사용 가능합니다.
// result: { isSuccess: false, value: {} }
`bash`
npm install @nol-open-platform/open-platform-connector
`javascript
import {NolAppBridge} from '@nol-open-platform/open-platform-connector';
// 앱 프록시 ID로 초기화
NolAppBridge.init('your-app-proxy-id');
`
챌린지-응답에 필요한 값과 회원키를 반환한다.
로그인이 되어있지 않다면 NOL 로그인 페이지로 이동합니다.
반환값: Promise
예시:
`javascript
try {
const result = await NolAppBridge.setup();
if (result.isSuccess) {
console.log('인증 성공');
console.log('회원 ID:', result.value.appMemberProxyId);
console.log('챌린지 ID:', result.value.challengeId);
console.log('챌린지 값:', result.value.challengeValue);
console.log('상태 값:', result.value.status);
} else {
if (result.value.status === "CANCEL_LOGIN") {
console.log('로그인 취소됨');
} else if (result.value.status === "CHALLENGE_FAILED") {
console.log('챌린지 검증 실패');
}
console.log('인증 실패');
}
} catch (error) {
console.error('인증 오류:', error);
}
`
NOL 앱의 로그인 상태를 확인합니다.
반환값: Promise
예시:
`javascript`
try {
const result = await NolAppBridge.isLogin();
if (result.isSuccess) {
console.log('로그인 상태 확인 성공');
console.log('로그인 상태:', result.value.isLogin);
} else {
console.log('로그인 상태 확인 실패');
}
} catch (error) {
console.error('로그인 상태 확인 오류:', error);
}
결제 웹뷰를 엽니다.
파라미터:
- param (OpenPaymentParam): 결제 파라미터orderNo
- (string): 주문 번호
반환값: Promise
예시:
`javascript
// 결제 파라미터 설정
const paymentParam = {
orderNo: '1234567890'
};
try {
const result = await NolAppBridge.openPayment(paymentParam);
if (result.isSuccess) {
console.log('결제 웹뷰 열기 성공');
} else {
console.log('결제 웹뷰 열기 실패');
}
} catch (error) {
console.error('결제 웹뷰 열기 오류:', error);
}
`
웹뷰를 닫을 때 사용하는 함수입니다. 결제 완료 후 또는 사용자가 취소할 때 호출합니다.
반환값: Promise
예시:
`javascript`
try {
const result = await NolAppBridge.closeWebView();
if (result.isSuccess) {
console.log('웹뷰 닫기 성공');
} else {
console.log('웹뷰 닫기 실패');
}
} catch (error) {
console.error('웹뷰 닫기 오류:', error);
}
인앱 브라우저를 열때 사용하는 함수입니다.
관리자에서 등록된 url만 사용할 수 있습니다.
반환값: Promise
예시:
`javascript`
try {
const result = await NolAppBridge.openInAppBrowser({
url: 'https://www.example.com'
});
if (result.isSuccess) {
console.log('브라우저 열기 성공');
} else {
console.log('브라우저 열기 실패');
}
} catch (error) {
console.error('브라우저 열기 오류:', error);
}
NOL 앱의 계정 관리 페이지 웹뷰를 엽니다.
반환값: Promise
예시:
`javascript`
try {
const result = await NolAppBridge.openAccountManagement();
if (result.isSuccess) {
console.log('웹뷰 열기 성공');
} else {
console.log('윕뷰 열기 실패');
}
} catch (error) {
console.error('웹뷰 열기 오류:', error);
}
`typescript
interface SetupResponseSuccess {
status: "OK";
appMemberProxyId: string;
challengeId: string;
challengeValue: string;
}
interface SetupResponseCancel {
status: "CANCEL_LOGIN";
}
interface SetupResponseChallengeFailed {
status: "CHALLENGE_FAILED";
}
type SetupResponse = SetupResponseSuccess | SetupResponseCancel | SetupResponseChallengeFailed;
interface OpenPaymentParam {
orderNo: string;
}
interface IsLoginResponse {
isLogin: boolean;
}
interface OpenPlatformBridgeCallbackResult
isSuccess: boolean;
value: T;
}
type OpenPlatformBridgeCallbackFunction
``
현재 버전: 1.1.3