gpt4 book ai didi

ios - 使用RoboVM进行应用内购买的解决方案是什么

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:04 24 4
gpt4 key购买 nike

我想在 iOS 上的 RoboVM 应用上使用应用内购买。据我了解,我需要为此访问 Apple 的 StoreKit 框架。我找到了以下解决方案:

我想知道什么是最适合我的方法。我首先尝试了 gdx-pay 但我不需要跨平台解决方案。 robovm-ios-bindings 似乎只关注我需要的功能。但由于它被标记为已弃用,我对此表示怀疑。 robopods 会很棒,因为 RoboVM 站点引用了它,但我在那里找不到 StoreKid 绑定(bind)。

我正在尝试查找有关如何使用其中一种技术的文档/教程。例如

  • 如何实现
  • 如何在不使用真钱的情况下在模拟器上测试购买
  • 好的/坏的做法、文档链接等。

最佳答案

Gdx-Pay 是最简单的方式。 This包含实现它所需的所有信息。

测试不能用真钱来完成。您可以设置测试环境以测试购买,如下所述:Testing IAP

Apple 必须遵守的一条规则是购买时要有一个“恢复”按钮。您的用户必须明确请求恢复他们的购买,例如通过按钮。

这是我如何设置 Gdx-Pay 的示例:

if(PurchaseSystem.hasManager()){
config = new PurchaseManagerConfig();
config.addOffer(new Offer().setType(OfferType.ENTITLEMENT).setIdentifier(item1String));

//Stores
config.addStoreParam(PurchaseManagerConfig.STORE_NAME_ANDROID_GOOGLE, base64EncodedKey);
config.addStoreParam(PurchaseManagerConfig.STORE_NAME_IOS_APPLE, base64EncodedKey); // <-- CHANGE KEY

PurchaseSystem.install(new PurchaseObserver() {
@Override
public void handleInstall() {
message(" - purchase manager installed: " + PurchaseSystem.storeName() + ".\n");
// restore purchases
message(" - do a restore to check inventory\n");

//Execute this on a button instead!
PurchaseSystem.purchaseRestore();
}

@Override
public void handleInstallError(Throwable e) {
message(" - error installing purchase manager: " + e + "\n");

// throw error
throw new GdxRuntimeException(e);
}

@Override
public void handleRestore(Transaction[] transactions) {
// keep note of our purchases
message(" - totally " + transactions.length + " purchased products\n");
for (int i = 0; i < transactions.length; i++) {
if(transactions[i].getIdentifier().equals(stone1)) {
preferences.putBoolean("item1_purchased", true);
}
}

}

@Override
public void handleRestoreError(Throwable e) {
message(" - error during purchase manager restore: " + e + "\n");

// throw error
throw new GdxRuntimeException(e);
}

@Override
public void handlePurchase(Transaction transaction) {
message(" - purchased: " + transaction.getIdentifier() + "\n");

// dispose the purchase system
Gdx.app.postRunnable(new Runnable() {
@Override
public void run () {
message(" - disposing the purchase manager.\n");
PurchaseSystem.dispose();
message("Testing InApp System: COMPLETED\n");
}
});
}

@Override
public void handlePurchaseError(Throwable e) {
message(" - error purchasing: " + e + "\n");
// throw error
throw new GdxRuntimeException(e);
}

@Override
public void handlePurchaseCanceled() {
message(" - purchase cancelled.\n");

// dispose the purchase system
Gdx.app.postRunnable(new Runnable() {
@Override
public void run () {
message(" - user canceled! - disposing the purchase manager.\n");
PurchaseSystem.dispose();
message("Testing InApp System: COMPLETED\n");
}
});
}
},config);

} else {
//Toast an error
}

然后你就可以打电话了

PurchaseSystem.purchase("itemID");

进行购买。

关于ios - 使用RoboVM进行应用内购买的解决方案是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32285276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com