2015-12-01 3 views
1

Мы используем последнюю доступную версию Facebook SDK для Unity (v7.2.2)Если FB.ActivateApp вручную призвал прошивку

Один из доступных интерфейсов является ActivateApp (FB.ActivateApp).

Должен ли этот метод быть вызван, в частности, на iOS?

Рытья немного в то, что под капотом (SDK с открытым исходным кодом), я вижу, что на прошивке (в файле FBUnityInterface.mm), есть следующий код:

- (void)didBecomeActive:(NSNotification *)notification 
{ 
    [FBSDKAppEvents activateApp]; 
} 

Похоже ActivateApp этого времени автоматически вызываемый вручную (независимо от того, вызываю ли я его вручную или нет).

Следует ли нам называть FB.ActivateApp, когда наше приложение запускается/возобновляется? не приведет ли это к дублированию отчетов об активации приложений?

+1

я бы придерживаться тем, что рекомендует документации Unity SDK: https://developers.facebook.com/docs/unity/reference/current/FB.ActivateApp – corvuszero

+0

Спасибо я буду смотреть на это! –

ответ

0

Ответ мой собственный вопрос:

КСН, ActivateApp, кажется, вызывается автоматически в IOS машинный код.

Вызов метода FB.ActivateApp ничего не делает (см этот код из IOSFacebook.cs):

public override void ActivateApp(string appId) 
{ 
    IOSFacebook.IOSFBSettingsActivateApp(appId); 
} 

Вызываемый метод просто пустым:

private static void IOSFBSettingsActivateApp(string appId) 
{ 
} 

Таким образом, это, кажется, принято автоматически заботиться о iOS.

0

Просто, чтобы перезвонить здесь. В настоящее время у нас есть ошибка, когда при использовании UnityIAP, если пользователь купил потребляемую IAP и покинул приложение, прежде чем маркировать его «Завершить», они не получат уведомление о покупке при перезагрузке приложения.

В конце концов это привело к автоматическому вводу в журнал событий IAP в iOS (SDK> = 3.22). Я думаю, потому что он добавлял слушателя в очередь транзакций перед Unity.

Я упоминаю об этом потому, что для включения автоматического протоколирования ФБ ИПФ, вам необходимо установить его в:

developers.facebook.com > App > Settings > Basic > iOS > iOS Only: Log In-App Purchase Events Automatically (Recommended) 

Затем вызовите ActivateApp(). Тем не менее, это делается автоматически для вас на iOS, так что только оставляет настройки на веб-сайте или меняет код.

Короче говоря, если вы используете Unity IAP, и вы не получаете обратные вызовы покупки для неполных покупок при запуске iOS, это либо из-за того, что FB или другой плагин добавляет слушателя очереди транзакций (другой пользователь сообщил о возможности AdMob). Для нас это был FB.

http://forum.unity3d.com/threads/iap-restorepurchase-on-ios-not-return-processpurchase-callback.392000/

Смежные вопросы