UNPKG

react-native-toss-payments

Version:

리액트 네이티브용 토스페이먼츠 결제 연동 라이브러리

87 lines (73 loc) 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _reactNative = require("react-native"); var _reactNativeWebview = _interopRequireDefault(require("react-native-webview")); var _libs = require("../../libs/libs"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const Payment = _ref => { let { clientKey, payment, onWebViewMessageReceived, detectIsLoading } = _ref; const WEBVIEW_SOURCE_HTML = ` <html> <head> <meta http-equiv='content-type' content='text/html; charset=utf-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <script src="https://js.tosspayments.com/v1"></script> </head> <body> <script> var clientKey = '${clientKey}' var tossPayments = TossPayments(clientKey) // 클라이언트 키로 초기화하기 </script> </body> </html> `; return /*#__PURE__*/_react.default.createElement(_reactNative.SafeAreaView, { style: { flex: 1 } }, /*#__PURE__*/_react.default.createElement(_reactNativeWebview.default, { style: { flex: 1 }, source: { html: WEBVIEW_SOURCE_HTML }, injectedJavaScript: ` tossPayments.requestPayment('카드',${JSON.stringify(payment)}).catch(err => { window.ReactNativeWebView.postMessage(JSON.stringify(err)); }) `, onMessage: onWebViewMessageReceived, originWhitelist: ['*'], sharedCookiesEnabled: true, onShouldStartLoadWithRequest: request => { const { url, mainDocumentURL } = request; if ((0, _libs.isBlank)(url, mainDocumentURL)) { detectIsLoading(true); return true; } detectIsLoading(false); if ((0, _libs.isAppUrl)(url)) { /* 3rd-party 앱 오픈 */ (0, _libs.openPGApp)(url); return false; } return true; } })); }; var _default = Payment; exports.default = _default; //# sourceMappingURL=Payment.js.map