You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求可将通用通行证添加至Google Wallet的React Native包

React Native 集成 Google Wallet 通用通行证解决方案

一、无第三方包的轻量实现方案

目前没有专门支持Google Wallet通用通行证的成熟React Native第三方包,可直接基于Google Wallet官方API实现:

  • 先通过后端或前端生成符合要求的通行证JWT(需在Google Cloud控制台启用Wallet API、配置凭据)
  • 用React Native内置的Linking模块唤起Google Wallet应用完成添加:
    import { Linking } from 'react-native';
    
    const addToGoogleWallet = async (jwtToken) => {
      const deepLink = `https://pay.google.com/gp/v/save/${jwtToken}`;
      const isSupported = await Linking.canOpenURL(deepLink);
      if (isSupported) {
        await Linking.openURL(deepLink);
      } else {
        console.error('未安装Google Wallet应用');
      }
    };
    
  • 该方案同时适配iOS和Android,无需依赖第三方包。

二、Android Kotlin原生模块简化模板

如果需要原生层集成,这里提供极简的Kotlin模块实现,避免复杂的原生开发流程:

  1. 在项目android/app/src/main/java/com/[你的项目包名]/下创建GoogleWalletModule.kt:
    package com.你的项目包名
    
    import com.facebook.react.bridge.ReactApplicationContext
    import com.facebook.react.bridge.ReactContextBaseJavaModule
    import com.facebook.react.bridge.ReactMethod
    import android.content.Intent
    import android.net.Uri
    
    class GoogleWalletModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
      override fun getName(): String = "GoogleWalletModule"
    
      @ReactMethod
      fun addPass(jwt: String) {
        val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://pay.google.com/gp/v/save/$jwt"))
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        reactApplicationContext.startActivity(intent)
      }
    }
    
  2. 创建GoogleWalletPackage.kt注册模块:
    package com.你的项目包名
    
    import com.facebook.react.ReactPackage
    import com.facebook.react.bridge.NativeModule
    import com.facebook.react.bridge.ReactApplicationContext
    import com.facebook.react.uimanager.ViewManager
    import java.util.ArrayList
    
    class GoogleWalletPackage : ReactPackage {
      override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
        val modules = ArrayList<NativeModule>()
        modules.add(GoogleWalletModule(reactContext))
        return modules
      }
    
      override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> = emptyList()
    }
    
  3. 在MainApplication.kt中注册Package:
    override fun getPackages(): List<ReactPackage> {
      return PackageList(this).packages.apply {
        add(GoogleWalletPackage())
      }
    }
    
  4. React Native端调用示例:
    import { NativeModules } from 'react-native';
    const { GoogleWalletModule } = NativeModules;
    
    // 传入生成好的JWT令牌
    GoogleWalletModule.addPass(yourGeneratedJwt);
    

三、核心注意事项

  • 必须先在Google Cloud控制台完成项目创建、Wallet API启用、OAuth2.0凭据配置,严格按照官方规则生成通行证JWT。
  • iOS端无需额外原生开发,直接复用Linking方案即可。

内容的提问来源于stack exchange,提问作者7th storm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:15:07