我正在尝试在我的应用中集成Tapjoy优惠墙。
我的代码:
// Get notifications when Tapjoy views open or close.
TapjoyConnect.getTapjoyConnectInstance().setTapjoyViewNotifier(new TapjoyViewNotifier()
{
@Override
public void viewWillOpen(int viewType)
{
TapjoyLog.i(TAG, "viewWillOpen: ");
}
@Override
public void viewWillClose(int viewType)
{
TapjoyLog.i(TAG, "viewWillClose: ");
}
@Override
public void viewDidOpen(int viewType)
{
TapjoyLog.i(TAG, "viewDidOpen: ");
}
@Override
public void viewDidClose(int viewType)
{
TapjoyLog.i(TAG, "viewDidClose: ");
TapjoyConnect.getTapjoyConnectInstance().getTapPoints(new TapjoyNotifier()
{
@Override
public void getUpdatePointsFailed(String arg0)
{
System.out.println(arg0);
}
@Override
public void getUpdatePoints(String arg0, int arg1)
{
System.out.println(arg0);
System.out.println(arg1);
if(arg1 > 0)
{
AppResources.setValueToShredPrefrences("gold_coins",
AppResources.gold_coins + arg1);
}
AppResources.ShowToast(m_context, "gold coin earned: " + arg1, Toast.LENGTH_SHORT);
}
});
finish();
}
});
问题是viewDidClose中的方法getUpdatePoints总是返回1,这意味着即使用户没有做任何事情,用户也会得到一分。
此外,当用户在调用viewDidClose两次之后执行类似观看视频的操作时,会让用户在获得1分时获得两分。
这是测试场景,我很高兴看到正确整合Tapjoy报价墙的一个例子,谢谢!
答案 0 :(得分:1)
(因为声誉低而无法发表评论)
我遇到了同样的问题,因为viewDidClose被调用两次而getTapPoints总是返回1.但是,我注意到它返回0直到设备完成至少一个测试要约。
如果我发现其他任何内容,我会更新此答案。
更新1
移动到另一台设备后,这两个问题都已消失。这让我相信a)我正在使用的设备给出了错误的标识符/否则不支持或b)测试模式当前被破坏。
更新2
为第二个设备启用测试模式后,再次调用viewDidClose两次。对于一个货币单位,测试报价被添加到getTapPoints中发送的总数中(所以现在每次视图关闭时我得到4而不是像我在另一台设备上那样,因为我已经完成了3个单位的价值切换到测试模式之前的优惠。)
总之,似乎两次调用viewDidClose的问题是由测试模式引起的,而getTapPoints的值为1则是测试商品只计入一次可兑换价值的结果。
更多信息
重读你的问题,你似乎误解了调用getTapPoints时发回的值。这是设备的累积总积分,而不是自上次呼叫以来获得的积分数。因此,如果您没有完成任何优惠,您将获得与之前相同的价值。我通常在我的应用程序中保留前一个总数的值,然后仅向用户提供该值与getTapPoints返回的值之间的差异。
所有这些都是通过tapjoyconnectlibrary的10.1.1版完成的。