npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-wallet-manager

v1.1.1

Published

Provides some Apple Wallet functionality for IOS and Google Wallet for Android.

Downloads

13,421

Readme

react-native-wallet-manager

This library provides integration with both Apple Wallet on iOS and Google Wallet on Android. It allows you to add, remove, and check for existing passes on iOS, and add passes to Google Wallet on Android.

npm version npm MIT Platform - Android Platform - iOS

| | | | :-------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------: | | iOS | Android |

Installation

yarn add react-native-wallet-manager

or

npm install react-native-wallet-manager

Setup

iOS

To enable the Wallet functionality on iOS, you need to add the Wallet capability in Xcode. Follow these steps:

  1. Open your project in Xcode (xcworkspace file).

  2. Select your project Target.

  3. Go to the Signing & Capabilities tab.

  4. Click on + Capability to add a new capability.

  5. In the search bar, type Wallet and add it to your project.

After that, navigate to the ios folder in your project directory and run the following command to install necessary dependencies:

cd ios && pod install

Android

To enable Google Wallet functionality on Android, you need to add the Google Play Services dependency to your project. Follow these steps:

  1. Open the android/app/build.gradle file in your project.

  2. In the dependencies section, add the following line with the latest version of play-services-pay:

    implementation "com.google.android.gms:play-services-pay:<latest_version>"

Replace <latest_version> with the most recent version number available. You can find the latest version on the Google Play Services release notes page.

Usage

For platform-specific instructions on how to create passes:

To use this library, start by importing it into your React Native component:

import WalletManager from 'react-native-wallet-manager';

API

| Method | Parameters | iOS | Android | | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | --- | ------- | | canAddPasses() | None | ✅ | ✅ | | addPassToGoogleWallet(jwt: string) | jwt: string | ❌ | ✅ | | addPassFromUrl(url: string) | url: string | ✅ | ✅ | | hasPass(cardIdentifier: string, serialNumber?: string) | cardIdentifier: string, serialNumber?: string | ✅ | ❌ | | removePass(cardIdentifier: string, serialNumber?: string) | cardIdentifier: string, serialNumber?: string | ✅ | ❌ | | viewInWallet(cardIdentifier: string, serialNumber?: string) | cardIdentifier: string, serialNumber?: string | ✅ | ❌ | | showViewControllerWithData(filePath: string) | filePath: string | ✅ | ❌ |

Notes

All methods return a Promise that resolves with the result of the operation or rejects if an error occurs.

canAddPasses()

Checks if the device can add passes to the wallet. This method is supported on both iOS and Android.

Example

const canAddPasses = async () => {
  try {
    const result = await WalletManager.canAddPasses();
    console.log(result);
  } catch (e) {
    console.log(e);
  }
};

addPassToGoogleWallet(jwt: string)

Adds a pass to Google Wallet. This method is only supported on Android.

Parameters

  • jwt (string): The JWT token containing the pass information to be added to Google Wallet.

Note: In the example below, you'll see a placeholder for the JWT. You need to generate a valid Google Wallet JWT for testing purposes.

Example

const addPassToGoogleWallet = async () => {
  try {
    await WalletManager.addPassToGoogleWallet(
      'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...'
    );
  } catch (e) {
    console.log(e);
  }
};

addPassFromUrl(url: string)

Adds a pass from a specified URL. This method is supported on both iOS and Android.

  • On iOS, it will add the pass to Apple Wallet.
  • On Android, it will open the URL in a browser.

Parameters

  • url (string): The URL of the pass file (.pkpass file) to be added.

Examples

const addPass = async () => {
  try {
    const result = await WalletManager.addPassFromUrl(
      'https://github.com/dev-family/react-native-wallet-manager/blob/main/example/resources/pass.pkpass?raw=true'
    );
    console.log(result);
  } catch (e) {
    console.log(e);
  }
};

hasPass(cardIdentifier: string, serialNumber?: string)

Checks if a pass with a specific identifier exists in the Apple Wallet. This method is only supported on iOS.

Parameters

  • cardIdentifier (string): The unique identifier of the pass to check.
  • serialNumber (string, optional): The serial number of the pass. This parameter is optional and can be used to further specify the pass.

Example

const hasPass = async () => {
  try {
    const result = await WalletManager.hasPass('pass.family.dev.walletManager');
    console.log(`has pass: ${result}`);
  } catch (e) {
    console.log(e, 'hasPass');
  }
};

removePass(cardIdentifier: string, serialNumber?: string)

Removes a pass with a specific identifier from the Apple Wallet. This method is only supported on iOS.

Parameters

  • cardIdentifier (string): The unique identifier of the pass to remove.
  • serialNumber (string, optional): The serial number of the pass. This parameter is optional and can be used to further specify the pass.

Example

const removePass = async () => {
  try {
    const result = await WalletManager.removePass(
      'pass.family.dev.walletManager'
    );
    console.log(`remove pass: ${result}`);
  } catch (e) {
    console.log(e, 'removePass');
  }
};

viewInWallet(cardIdentifier: string, serialNumber?: string)

Opens a pass with a specific identifier in Apple Wallet. This method is only supported on iOS.

Parameters

  • cardIdentifier (string): The unique identifier of the pass to view.
  • serialNumber (string, optional): The serial number of the pass. This parameter is optional and can be used to further specify the pass.

Example

const viewPass = async () => {
  try {
    const result = await WalletManager.viewInWallet(
      'pass.family.dev.walletManager'
    );
    console.log(result);
  } catch (e) {
    console.log(e, 'error Viewing Pass');
  }
};

showViewControllerWithData(filePath: string)

Displays a view controller to add a pass using the data from the specified file path. This method is only supported on iOS.

Parameters

  • filePath (string): The path to the .pkpass file containing the pass data to be added to Apple Wallet.

Example

const showViewControllerWithData = async (filePath) => {
  try {
    const result = await WalletManager.showViewControllerWithData(filePath);
    console.log(`Pass was added: ${result}`);
  } catch (e) {
    console.error('Error displaying pass view controller:', e);
  }
};

Project inspired by react-native-wallet

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT