反应本机|反应本机

时间:2020-07-16 16:31:43

标签: react-native in-app-billing react-native-iap

这是我第一次在项目中使用react-native-iap。我安装了库,没有任何问题。我有几个问题。

  1. 以下是我购买单个产品的代码块。现在是这种用法吗?
import * as RNIap from 'react-native-iap';

const itemSkus = Platform.select({
    ios: ['stackoverflow_ex'],
    android: ['stackoverflow_ex']
});

export default class Buy extends Component {

    state= {
        products:[],
        count:0
    }

    async componentDidMount() {
        try {
            const products: Product[] = await RNIap.getProducts(itemSkus);
            this.setState({ products });
        } catch(err) {
            console.warn(err); // standardized err.code and err.message available
        }
    }

    requestPurchase = async (sku: string) => {
        try {
            await RNIap.requestPurchase(sku, false);
            this.setState({ count:this.state.count+1 });
        } catch (err) {
            console.warn(err.code, err.message);
        }
    }

    click = () => {
        this.requestPurchase('stackoverflow_ex') 
    }

    render() {
        const {item} = this.props;
        return (
            <TouchableOpacity onPress={() => this.click()} />
        );
    }
}
  1. 如何从“ RNIap.requestPurchase(sku,false)”函数获得收益?例如:const result = RNIap.requestPurchase(sku,false);
  2. 以上代码在一定程度上适用于IOS。单击“ Apple主页”进入付款过程。填充到那里之后什么也没有发生。未在Count + 1中执行操作。是否是因为我添加到Apple Connect的产品旁边显示“准备提交”?苹果会批准该产品吗?我应该等他吗?
  3. 产品即将在iOS中推出。 Android上的空白列表正在返回。我应该将其上传到公开测试版并尝试吗?

2 个答案:

答案 0 :(得分:1)

对于android,您需要在Google Play中上传apk。否则,您将无法在应用程序中测试Google Play结算。您可以做的是上传apk,并在Internal test track下发布。审核过程需要2-3天。之后,您可以进行测试。

有关更多信息,请检查此link

答案 1 :(得分:0)

乍一看,我会说至少缺少 initConnection。 确保代码正确完成的最佳方法请查看 github 中的示例:https://github.com/dooboolab/react-native-iap/blob/master/IapExample/App.js