React-native-iap: RNIap.requestPurchase 在 iOS 中没有响应

创建于 2020-05-13  ·  11评论  ·  资料来源: dooboolab/react-native-iap

react-native-iap 的版本

4.4.8

react-native 版本

0.61.5

您遇到错误的平台(IOS 或 Android 或两者?)

iOS

预期行为

await RNIap.requestPurchase(sku, false)
console.log('REQUEST OVER') 

请求结束打印。

实际行为

在我使用沙盒测试器帐户的设备中,它响应良好且运行良好。 但是对于任何其他设备或模拟器,它都没有响应或解析。 这一点很重要,因为在应用程序审查期间,Apple 一直拒绝我的应用程序,原因是点击 BUY 没有响应。

RNIap.getProducts(itemSkus)没有问题

测试环境(模拟器?真实设备?)

真实设备和模拟器

重现行为的步骤

 async componentDidMount() {
    RNIap.getProducts(itemSkus)
      .then((products) => {
        this.setState({ products: products })
      })
      .catch((error) => {
        console.log(error.message)
      })
  }
requestPurchase = async (sku) => {
    try {
      await RNIap.requestPurchase(sku, false)
      console.log('REQUESTED OVER')
    } catch (err) {
      console.warn(err.code, err.message)
    }
}

render() {
 const { products } = this.state
 return (
  <View>
    {products.map((p, i) => { return (
       <TouchableWithoutFeedback onPress={() => this.requestPurchase(p.productId)}>
          <Text> BUY </Text>
       </TouchableWithoutFeedback> ) })}
 </View>)
🚶🏻 stale

最有用的评论

我遇到了同样的问题, @Panda313建议在componentDidMount中添加await RNIap.initConnection() #$ 有效。
太糟糕了,这没有更好的记录......

所有11条评论

同样在这里,但它似乎适用于Android。

我可能已经通过添加来修复它

常量结果 = 等待 RNIap.initConnection();
等待 RNIap.consumeAllItemsAndroid();
console.log('结果', 结果);

在 componentDidMount 开头;

让我知道是否有帮助

@hyochan你找到解决办法了吗? 我在 iOS 中也遇到了同样的问题。 这非常令人沮丧,我无法通过应用程序审核,因为调用 RNIap.requestPurchase 不会响应提醒用户同意订阅条款或确认订阅已经处于活动状态。 如果我强制关闭应用程序并重试,有时它会起作用。 不知道是沙盒有问题还是这个库有问题。

@smarttouchtechnology你打电话给initConnection吗? 这需要4.4.5

@smarttouchtechnology可能很难阅读下面“解决”“问题”的答案;)

我遇到了同样的问题, @Panda313建议在componentDidMount中添加await RNIap.initConnection() #$ 有效。
太糟糕了,这没有更好的记录......

@Panda313 ... 你刚刚救了我 1 周苹果拒绝的不眠之夜

有人可以将此添加到文档中,以便更多人不会遇到此问题吗? 我不确定添加它的最佳方法。

编辑:在此处添加。 #1088

随意评论(我不相信我做对了。)

我可能已经通过添加来修复它

常量结果 = 等待 RNIap.initConnection();
等待 RNIap.consumeAllItemsAndroid();
console.log('结果', 结果);

在 componentDidMount 开头;

让我知道是否有帮助

对于 iOS,我没有收到来自requestSubscription的任何回复。 我尝试在RNIap.requestSubscription前面添加await RNIap.initConnection(); $,它对我有用。 现在我在应用程序根目录的侦听器中接收购买对象。 在解决错误或成功响应后,它还会继续执行代码。

你好,最近好像没有关于这个问题的活动。 问题是否已解决,还是仍需要社区关注? 如果没有进一步的活动发生,此问题可能会关闭。 您也可以将此问题标记为“供讨论”或“第一个问题”,我将保持开放状态。 感谢你的贡献。

在长时间不活动后关闭此问题。 如果最新版本中仍然存在此问题,请随时使用最新信息创建新问题。

此页面是否有帮助?
0 / 5 - 0 等级