iOS通过cordova-plugin-purchase购买应用?



我正在使用Capacitor(但不是Ionic)来打包iOS的SvelteKit应用程序,并试图获得应用内购买工作。

Capacitor关于应用内购买的页面令人惊讶地没有帮助。我已经尽力了,

  1. 我已经在appstoreconnect中设置了产品,它们的状态是"准备提交">

  2. 我已经安装了cordova-plugin-purchase并运行npx cap updatenpx cap sync,它正在安装

[info]找到1个Cordova插件cordova-plugin-purchase@13.0.3

  1. 我试着做最简单的测试,我可以只是看看发生了什么:
import 'cordova-plugin-purchase'; // This seems to add `CdvPurchase` to the global scope.
function buy() {

const {store, ProductType, Platform} = CdvPurchase;
store.verbosity = store.DEBUG;

store.register([{
type: ProductType.CONSUMABLE,
id: "my-product-id",
platform: Platform.APPLE_APPSTORE,
}]);
store.error(e => {
console.log('error', e);
});
store.when()
.productUpdated(() => {
console.log('product updated', product);
})
.approved(value => {
console.log('approved', value);
})
.verified(value => {
console.log('verified', value);
})
.finished(value => {
console.log('finished', value);
});
store.ready(() => {
console.log('ready', store.products);
store.order('my-product-id');
});

store.initialize(Platform.APPLE_APPSTORE)
.then(() => {
console.log('initialize resolved', store.products);
store.order('my-product-id');
});
}

但是我运行buy函数,所有我得到的是:

[log] - [CordovaPurchase] INFO: initialize()

store从不报告为就绪。没有一个监听器被触发,甚至.error()也没有。

我错过什么了吗?我如何调试这个?

您需要在设备准备好时设置并初始化存储

你不能buy()一个产品,然后初始化存储;它必须在设备启动时完成。

例如,在Cordova中,这是onDeviceReady事件(示例)。

对于电容器,如果你使用Ionic + Angular,你可以使用this.platform.ready()事件。

对于React, Vue和其他框架,你可以使用:

document.addEventListener("deviceready", function(){
//do something when device is ready
}, false);

相关内容

最新更新