0

我正在尝试在我的应用程序中集成 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 分的情况下获得 2 分。

这是测试场景,我很高兴看到一个正确集成 Tapjoy 报价墙的示例,谢谢!

4

1 回答 1

1

(不能发表评论,因为声誉低)

我遇到了同样的问题,viewDidClose 被调用了两次,getTapPoints 总是返回 1。但是,我注意到它返回 0,直到设备完成至少一个测试报价。

如果我发现其他任何内容,我将更新此答案。

更新 1

转移到另一台设备后,这两个问题都消失了。这让我相信,要么a)我使用的设备提供了错误的标识符/不支持,要么b)测试模式当前被破坏。

更新 2

在为第二个设备启用测试模式后,再次调用 viewDidClose 两次。一个货币单位的测试报价被添加到 getTapPoints 中发送的总数中(所以现在每次视图关闭时,我都会得到 4 而不是像我在另一台设备上所做的那样,因为我已经完成了价值 3 个单位切换到测试模式之前的报价。)

总之,viewDidClose 被调用两次的问题似乎是由测试模式引起的,getTapPoints 的值为 1 是因为测试报价仅计入您的总可兑换价值一次。

更多信息

重读您的问题,您似乎误解了调用 getTapPoints 时返回的值。这是设备的累计总积分,而不是自上次调用以来已获得的积分。因此,如果您没有完成任何报价,您将获得与以前相同的价值。我通常在我的应用程序中保留一个前一个总数的值,然后只向用户提供该值与 getTapPoints 返回的值之间的差异。

所有这些都是使用 10.1.1 版的 tapjoyconnectlibrary 完成的。

于 2014-11-10T19:10:14.260 回答