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.