Product SDK - Multi-platform SDK for Product component
npm install max-product-sdkSDK đa nền tảng để tích hợp component Product vào app thứ 3.
```
max-sdk/
├── react-native/ # React Native SDK ✅
├── flutter/ # Flutter SDK
├── native/ # Pure native SDKs
│ ├── ios/
│ └── android/
└── examples/ # Example apps
#### 1. Install
`bash`
npm install max-product-sdk
#### 2. iOS Setup
Quan trọng: Sau khi install, cần rebuild app (không chỉ reload Metro):
`bash
cd ios
pod install
cd ..
Hoặc mở Xcode và build lại:
`bash
open ios/YourApp.xcworkspace
Sau đó build từ Xcode (Cmd+B, rồi Cmd+R)
`#### 3. Android Setup
Quan trọng: Sau khi install, cần rebuild app (không chỉ reload Metro):
`bash
Clean build
cd android
./gradlew clean
cd ..Rebuild app
npx react-native run-android
`
android/build.gradle:
`bash
allprojects {
repositories {
google()
mavenCentral()
// TrustVision SDK local repository
maven {
url "${rootDir}/../node_modules/react-native-trust-vision-SDK/android/repo"
}
}
}
`
android/settings.gradle:
`bash
include ':libs'
project(':libs').projectDir = new File('../node_modules/nfc_module/android/libs')
`Kotlin:
`kotlin
import com.max.productsdk.ProductSDKPackageoverride fun getPackages(): List {
val packages = PackageList(this).packages
packages.add(ProductSDKPackage())
return packages
}
`Java:
`java
import com.max.productsdk.ProductSDKPackage;@Override
protected List getPackages() {
List packages = new PackageList(this).getPackages();
packages.add(new ProductSDKPackage());
return packages;
}
`#### 4. Usage
`tsx
import { ProductSDK } from 'max-product-sdk';
const handleProductSelect = (productType: 'credit' | 'debit' | 'lending') => {
console.log('Product selected:', productType);
}; const handleNavigationRequest = (route: string) => {
console.log('Navigation requested to:', route);
};
const handleMaintenanceMode = (message: string) => {
console.log('Maintenance Mode', message);
};
const handleError = (error: Error) => {
console.error('SDK Error:', error);
};
const handleNfcScanComplete = async (data: any) => {
console.log('[TestSDK] handleNfcScanComplete data:', data);
};
apiKey="your-api-key"
environment="prod | uat | dev"
onEkycCaptureComplete={async () => {
return {
// Expected format: dd/MM/yyyy (see SDK dateUtil.ts)
date_of_birth: 'dd/mm/yyy',
expiry_date: 'dd/mm/yyy',
id_number: 'dd/mm/yyy',
issue_date: 'dd/mm/yyy',
} as any;
}}
onNfcScanComplete={handleNfcScanComplete}
onError={handleError}
onMaintenanceMode={handleMaintenanceMode}
onNavigationRequest={handleNavigationRequest}
onProductSelect={handleProductSelect}
showCreditCard={true}
showDebitCard={true}
showLending={true}
/>
`#### 5. Peer Dependencies
SDK yêu cầu các peer dependencies sau (host app phải cài đặt):
`bash
npm install react-native-trust-vision-SDK react-native-nfc-manager
`
nfc_module không có trên npm; thường dùng bản đóng gói (tgz) nội bộ. Nếu bạn có file nfc_module.tgz:- Copy vào project (ví dụ
libs/nfc_module.tgz)
- Thêm vào package.json:
`json
"nfc_module": "./libs/nfc_module.tgz"
`
- Chạy npm install hoặc yarnLưu ý: Nếu không cài
nfc_module và react-native-nfc-manager, màn NFC sẽ báo lỗi "nfc_module hoặc react-native-nfc-manager chưa được cài đặt" khi người dùng chuyển từ eKYC sang bước đọc chip CCCD.
$3
`yaml
dependencies:
product_sdk:
path: ../max-sdk/flutter
``dart
import 'package:product_sdk/product_sdk.dart';ProductSDK(
apiKey: 'your-api-key',
environment: 'prod',
)
`$3
`ruby
pod 'ProductSDK', :path => '../max-sdk/native/ios'
``swift
ProductSDK.shared.initialize(
apiKey: "your-api-key",
environment: "prod"
)
`$3
`gradle
implementation project(':max-sdk:native:android')
``kotlin
ProductSDK.getInstance().initialize(
apiKey = "your-api-key",
environment = "prod"
)
``- ✅ React Native: Hoàn chỉnh, sẵn sàng sử dụng
- ⚠️ Flutter: TODO
- ⚠️ Native iOS: TODO
- ⚠️ Native Android: TODO
MIT