【发布时间】:2019-12-12 11:35:30
【问题描述】:
使用 Apache Cordova 和 https://github.com/j3k0/cordova-plugin-purchase 在 Android 上成功交付应用内购买 (IAP) 后,我无法让它在 iOS 上正常运行。问题是,一旦单击该项目,价格就会显示其详细信息等,但是如果使用单击“取消”,则用户将无法再购买任何东西。除非重新开始游戏,据我所知,我应该处理拒绝/取消事件。尝试了这些,但到目前为止没有成功。
这就是我尝试处理这些事件(拒绝/取消)的方式,包括在代码的不同位置使用 store.refresh() 以及不使用它:
// Handle rejection and cancel events.
store.when("com.XX.YY.gems5").rejected(function(order) {
store.refresh();
that.game.state.start("GemsState");
store.refresh();
});
store.when("com.XX.YY.gems5").cancelled(function(order) {
store.refresh();
that.game.state.start("GemsState");
store.refresh();
});
代码,可在 Android 上正常运行(无需处理即可正常运行):
'use strict';
var that = this;
// Prepare product.
store.register({
id: "com.XX.YY.gems5",
alias: "Gems 5",
type: store.CONSUMABLE
});
// Purchase product.
store.order("com.XX.YY.gems5");
store.refresh();
store.when("com.XX.YY.gems5").approved(function (order) {
order.finish();
store.refresh();
// Add extra gems.
localStorage.gems = parseInt(localStorage.gems) + 5; // Add 5 gems.
that.upgrade_sound.play(); // Play upgrade sound.
that.game.state.start("GemsState");
that.menu_items[1].select(); // Select second item.
});
我正在使用 Phaser 2 和 ES5。
【问题讨论】:
标签: android ios cordova in-app-purchase phaser-framework