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

React Native Expo集成Google Wallet:添加卡片可见字段问题

解决Google Wallet通用卡片表面显示额外字段的问题

你遇到的核心问题是字段路径语法错误,导致无法将textModulesData中的内容映射到卡片表面。以下是具体修改方案:

1. 修正字段路径(fieldPath)

Google Wallet的字段路径需要通过id('xxx')定位textModulesData数组中对应id的元素,而非直接用键名。修改genericClasses中的cardRowTemplateInfos部分:

{
  iss: 'xxxx@xxxx.iam.gserviceaccount.com',
  typ: 'savetowallet',
  aud: 'google',
  origins: [],
  payload: {
    genericClasses: [
      {
        id: 'issuer-id.className',
        classTemplateInfo: {
          cardTemplateOverride: {
            cardRowTemplateInfos: [
              {
                twoItems: {
                  startItem: {
                    firstValue: {
                      // 显示Company的内容
                      fields: [{ fieldPath: "object.textModulesData.id('company').body" }],
                      // 添加行标题
                      label: {
                        defaultValue: {
                          language: 'en-GB',
                          value: 'Company'
                        }
                      }
                    },
                  },
                  endItem: {
                    firstValue: {
                      // 显示Job Title的内容
                      fields: [{ fieldPath: "object.textModulesData.id('job').body" }],
                      // 添加行标题
                      label: {
                        defaultValue: {
                          language: 'en-GB',
                          value: 'Job Title'
                        }
                      }
                    },
                  },
                },
              },
            ],
          },
        },
      },
    ],
    genericObjects: [genericPass],
  },
};

2. 关键说明

  • 字段路径语法:object.textModulesData.id('company').body表示定位到genericObject中textModulesData数组里id为company的元素,取其body值作为显示内容。如果需要显示header,将.body替换为.header即可。
  • 行标题(label):必须显式配置label,否则卡片表面只会显示内容,没有对应的标题文本。
  • 模板绑定:卡片表面的布局模板是和genericClass绑定的,所有属于该class的genericObject都会应用这个模板配置。

3. 可选优化

将genericPass中的genericType从GENERIC_WALLET_UNSPECIFIED改为更具体的类型(比如GENERIC_TYPE_PROFILE),可以让Google Wallet自动适配更贴合场景的默认样式,但这不是必须的。

内容的提问来源于stack exchange,提问作者user21851581

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 23:20:14