React Native Expo项目中Glassfy查询Offerings失败求助
解决Glassfy查询Offerings失败的问题
问题分析
核心问题是**Glassfy.offerings是异步函数而非直接的属性对象**,直接访问Glassfy.offerings.all会触发错误——因为函数本身没有all属性。Glassfy的Offerings数据需要通过异步调用获取,而非同步读取属性。
解决方案
1. 异步调用获取Offerings
调用Glassfy.offerings()(注意是函数调用)并通过await等待返回结果,这是正确获取Offerings列表的方式。
2. 保证执行顺序
必须在Glassfy.initialize完成后再执行Offerings查询,避免初始化未完成导致的异常。
修正后的代码示例
import { Glassfy } from "react-native-glassfy-module"; // 封装为异步函数执行 const loadGlassfyOfferings = async () => { try { await Glassfy.initialize('******************', false); console.log('Glassfy初始化成功'); // 异步获取Offerings数据 const offerings = await Glassfy.offerings(); const targetOffering = offerings.all.find(o => o.offeringId === 'plus'); if (targetOffering) { targetOffering.skus.forEach(sku => { console.log('SKU:', sku); console.log('产品描述:', sku.product.description); console.log('价格:', sku.product.price); }); } else { console.log('未找到ID为"plus"的Offering'); } } catch (error) { console.error('Glassfy操作错误:', error); } }; // 触发执行 loadGlassfyOfferings();
额外检查项
- 确认Glassfy后台配置的Offering ID
plus拼写完全一致(区分大小写) - 检查设备网络状态,确保客户端能正常与Glassfy后台通信
- 验证iOS/Android端内购配置:App Store Connect、Google Play Console的商品已正确关联到Glassfy后台
内容的提问来源于stack exchange,提问作者Sander van Maastricht
相关产品推荐
相关产品推荐

