4.4.8
0.61.5
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>)
同样在这里,但它似乎适用于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();
$,它对我有用。 现在我在应用程序根目录的侦听器中接收购买对象。 在解决错误或成功响应后,它还会继续执行代码。
你好,最近好像没有关于这个问题的活动。 问题是否已解决,还是仍需要社区关注? 如果没有进一步的活动发生,此问题可能会关闭。 您也可以将此问题标记为“供讨论”或“第一个问题”,我将保持开放状态。 感谢你的贡献。
在长时间不活动后关闭此问题。 如果最新版本中仍然存在此问题,请随时使用最新信息创建新问题。
最有用的评论
我遇到了同样的问题, @Panda313建议在
componentDidMount
中添加await RNIap.initConnection()
#$ 有效。太糟糕了,这没有更好的记录......