Tapjoy viewDidClose называется дважды

Я пытаюсь интегрировать стенд 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();

 }
 });

Проблема в том, что метод getUpdatePoints внутри viewDidClose всегда возвращает 1, что означает, что пользователь набрал одну точку, даже если пользователь ничего не сделал.

Более того, когда пользователь делает что-то вроде просмотра видео после этого viewDidClose, вызывается дважды, заставляя пользователя получать две точки, когда он должен получить 1 балл.

Это тестовые сценарии, я был бы рад увидеть пример интеграции стены Tapjoy, спасибо!

1 ответ

(не могу оставлять комментарии, потому что низкая репутация)

У меня такая же проблема, и в том, что viewDidClose вызывается дважды, а getTapPoints всегда возвращает 1. Однако я заметил, что он возвращает 0, пока устройство не завершит хотя бы одно тестовое предложение.

Я обновлю этот ответ, если найду что-нибудь еще.

Обновление 1

Обе проблемы исчезли при переходе на другое устройство. Это заставляет меня полагать, что либо: а) устройство, которое я использовал, это давать плохие идентификаторы/в противном случае не поддерживается или b) в настоящее время отключен режим тестирования.

Обновление 2

После включения тестового режима для этого второго устройства viewDidClose снова вызывается дважды. Предложение тестирования для одной единицы валюты было добавлено к общей сумме, отправляемой в getTapPoints (так что теперь каждый раз, когда окно закрывается, я получаю 4 вместо 1, как я сделал на другом устройстве, потому что я выполнил 3 единицы стоимости предложений до перехода в тестовый режим.)

В заключение выясняется, что проблема вызова viewDidClose, вызываемая дважды, вызвана тестовым режимом, и получение значения 1 для getTapPoints является результатом того, что предложение теста только подсчитывается один раз по отношению к вашему общему подлежащему погашению значению.

Больше информации

Перечитывая свой вопрос, вы, похоже, неправильно понимаете значение, которое отправляется обратно при вызове getTapPoints. Это кумулятивное общее количество заработанных очков, а не то, сколько очков было заработано с момента последнего вызова. Поэтому, если вы не заполните какие-либо предложения, вы получите то же значение, что и раньше. Обычно я сохраняю ценность в своем приложении из предыдущего итога, а затем предоставляю пользователю только разницу между этим значением и тем, что возвращается getTapPoints.

Все это было сделано с версией 10.1.1 от tapjoyconnectlibrary.

licensed under cc by-sa 3.0 with attribution.