使用Ionic结合React JS能否实现In App Purchase应用内购买?
Ionic React实现应用内购买的解决方案
完全可以实现,已经有大量开发者在Ionic React项目中落地了应用内购买功能。你看到的官方文档只提供Angular示例是官方文档的展示偏好,底层的@ionic-native/in-app-purchase-2是基于原生能力封装的跨框架插件,完全兼容React、Vue等所有Ionic支持的前端框架。
基础实现步骤
- 第一步:安装对应依赖
如果是Capacitor项目,执行以下命令:
npm install cordova-plugin-purchase @ionic-native/in-app-purchase-2 npx cap sync
如果是Cordova项目,执行以下命令:
ionic cordova plugin add cordova-plugin-purchase npm install @ionic-native/in-app-purchase-2
- 第二步:在React组件中初始化插件
参考示例代码如下:
import { InAppPurchase2 } from '@ionic-native/in-app-purchase-2'; import { useEffect } from 'react'; const PremiumPage = () => { useEffect(() => { // 初始化插件 InAppPurchase2.ready(() => { // 注册你在应用商店配置的商品ID,类型可选订阅、消耗型、非消耗型 const product = InAppPurchase2.register({ id: 'your_premium_product_id', type: InAppPurchase2.PAID_SUBSCRIPTION }); // 监听商品更新 product.when('updated', (p) => { // 在这里更新页面展示的商品价格、描述等信息 console.log('商品信息:', p.title, p.price); }); // 监听购买成功事件 product.when('approved', (p) => { // 这里做购买验证、权限开通逻辑 p.finish(); }); // 刷新商品信息 InAppPurchase2.refresh(); }); return () => { // 组件卸载时移除监听 InAppPurchase2.off(); } }, []); // 触发购买的方法 const handlePurchase = () => { InAppPurchase2.order('your_premium_product_id'); }; return <button onClick={handlePurchase}>购买高级版</button> }; export default PremiumPage;
- 第三步:平台配置
根据你要上线的iOS、Android平台,分别完成对应应用商店的商品配置、签名配置、支付权限开通,之后即可进行沙盒测试。
注意事项
- 所有和应用内购买相关的逻辑必须在原生环境运行,浏览器调试不会生效,需要用真机或者模拟器调试
- 购买完成后的服务端验证逻辑和框架无关,按对应应用商店的官方规则实现即可
- 如果需要更轻量的实现,也可以直接使用Capacitor社区维护的应用内购买插件,API调用逻辑和React的适配性更高
内容的提问来源于stack exchange,提问作者Uffo
相关产品推荐
相关产品推荐

