@nialldbarber/react-native-wallet-manager
Version:
Provides some Apple Wallet functionality for IOS and Google Wallet for Android.
47 lines (46 loc) • 1.97 kB
JavaScript
import { NativeModules, Platform, Linking } from 'react-native';
const { WalletManager } = NativeModules;
export default {
canAddPasses: async () => {
return await WalletManager.canAddPasses();
},
showAddPassControllerFromFile: async (filePath) => {
if (Platform.OS === 'android') {
throw new Error('showAddPassControllerFromFile method not available on Android');
}
return WalletManager.showAddPassControllerFromFile(filePath);
},
addPassToGoogleWallet: async (jwt) => {
if (Platform.OS === 'ios') {
throw new Error('addPassToGoogleWallet method not available on IOS');
}
return await WalletManager.addPassToGoogleWallet(jwt);
},
addPass: async (base64) => {
if (Platform.OS === 'android') {
throw new Error('addPass method not available on Android');
}
return await WalletManager.addPass(base64);
},
addPassFromUrl: Platform.OS === 'ios'
? WalletManager.addPassFromUrl
: (url) => Linking.openURL(url),
hasPass: async (cardIdentifier, serialNumber) => {
if (Platform.OS === 'android') {
throw new Error('hasPass method not available on Android');
}
return await WalletManager.hasPass(cardIdentifier, serialNumber != null ? serialNumber : null);
},
removePass: async (cardIdentifier, serialNumber) => {
if (Platform.OS === 'android') {
throw new Error('removePass method not available on Android');
}
return await WalletManager.removePass(cardIdentifier, serialNumber != null ? serialNumber : null);
},
viewInWallet: async (cardIdentifier, serialNumber) => {
if (Platform.OS === 'android') {
throw new Error('viewInWallet method not available on Android');
}
return await WalletManager.viewInWallet(cardIdentifier, serialNumber != null ? serialNumber : null);
},
};