当我们通过Amazon inApp API实现InApp时,我们通过purchase Manager调用的一个函数是initiatePurchaseUpdatesRequests(Offset offset),作为响应,我们得到onPurchaseUpdatesResponse(PurchaseUpdatesResponse obj)。我对胶印很困惑。如果我们第一次调用那么我们可以使用Ofset.BEGINNING并且在响应方法中这里有一个方法obj.getOffset()和文档说这将返回你发送的Offset。现在,如果它将返回旧偏移,那么它意味着所有时间相同的Offset.BEGINNING将被发送,我也很困惑这个Offset是什么?有人解释一下吗?
答案 0 :(得分:1)
对于特定用户,第一次调用initiatePurchaseUpdatesRequests(偏移量偏移量)时,应使用Offset.BEGINNING调用它。在onPurchaseUpdatesResponse回调中,您应检查是否有更多购买更新,并使用最后一个Offset递归调用initiatePurchaseUpdatesRequest。 (参见下面的代码示例)
如果您只想检索“新”购买更新,您还可以保存最后一个偏移量,并从该保存的偏移量开始进行后续的InitPurchaseUpdatesRequests(偏移量偏移)调用。
public void onPurchaseUpdatesResponse(final PurchaseUpdatesResponse response) {
//...
Offset offset = response.getOffset();
if (response.isMore()) {
PurchasingManager.initiatePurchaseUpdatesRequest(offset);
}
// Save offset associated to this IAP UserId.
}
Amazon Mobile SDK中的权利示例应用程序还包含说明如何使用Offset的示例代码。
答案 1 :(得分:1)
public Offset getOffset()
返回 可以传递 的
Offset
如果PurchasingManager.initiatePurchaseUpdatesRequest(Offset)
isMore()
表示可以获得更多结果。
在IAP Quick Start Guide中,它说:
如果
PurchaseUpdatesResponse.isMore()
返回true
,请进行递归 请致电PurchasingManager.initiatePurchaseUpdatesRequest()
PurchaseUpdatesResponse.getOffset()
中返回的值。
@ yasiriqbal776,我想你可能误读了文档。否则,您能否提供您所指的文档的URL?