2016-06-03 17 views
1

Ich versuche, die Facebook SDK zu meiner Cordova App hinzufügen, um Installationen zu verfolgen. In Facebook App Ads Setup verlangen sie, dass SieapplicationDidBecomeActive nicht in Cordova App

hinzufügen
- (void)applicationDidBecomeActive:(UIApplication *)application { 
    [FBSDKAppEvents activateApp]; 
} 

ich den Code-Snippet zu meinem AppDelegate.m hinzugefügt und enthalten ein NSLog und es nicht immer nicht aufgerufen. Jede Hilfe würde sehr geschätzt werden.

+0

haben Sie versucht, die NSLog in andere App-Delegate-Methoden wie für ex: applicationDidFinishLaunch und sehen, ob einige von ihnen aufgerufen werden? –

+0

Ja, ich habe ein Protokoll zu applicationDidFinishLaunch hinzugefügt und das wurde aufgerufen und wenn ich das Facebook-Snippet verschiebe, wird das auch aufgerufen. Ich bin nur besorgt, wenn Abweichungen von den Facebook-Anweisungen angemessen sind oder nicht. – Julien

Antwort

0

applicationDidBecomeActive Methode wird aufgerufen, wenn App Übergang von Hintergrund zu Vordergrund. Wenn der Benutzer einen Anruf, SMS usw. erhält oder die Home-Taste drückt, geht die App in den Hintergrund (um Batterie zu sparen usw.); Nach Gesprächsende oder Multitasking wird die App wieder aktiviert. Dann wird die applicationDidBecomeActive Methode aufgerufen. Es sollte hauptsächlich verwendet werden, um Tabellenansichten und ähnliches zu aktualisieren.

Hier ist die Apple-Dokumentation für die gleiche Methode.

Diese Methode wird aufgerufen, um Ihre App wissen zu lassen, dass sie von inaktiv in den aktiven Status gewechselt ist. Dies kann auftreten, weil Ihre App vom Benutzer oder vom System gestartet wurde. Apps können auch in den aktiven Status zurückkehren, wenn der Benutzer eine Unterbrechung ignoriert (z. B. ein ankommendes Telefon Anruf oder SMS-Nachricht), die die App vorübergehend in den inaktiven -Status gesendet hat.

Sie sollten diese Methode verwenden, um alle Tasks neu zu starten, die angehalten wurden (oder noch nicht gestartet wurden), während die App inaktiv war. Zum Beispiel könnten Sie verwenden, um Timer neu zu starten oder OpenGL ES-Frameraten zu drosseln. Wenn sich Ihre -App zuvor im Hintergrund befand, können Sie sie auch verwenden, um die Benutzeroberfläche Ihrer App zu aktualisieren .

Was passiert, ist völlig normal und Facebook-Anzeigen sollten ordnungsgemäß funktionieren.

Bitte lesen Sie die folgenden Dokumente, um ein tieferes Verständnis der App-Lebenszyklus- und App-Delegiertenmethoden zu erhalten.

Wenn Sie mit einem Plugin:

The App Life Cycle

UIApplicationDelegate

+0

Vielen Dank für die Erklärung, welche AnwendungDidBecomeActive ausführen soll. In der [Facebook-FAQ] (https://developers.facebook.com/docs/app-ads/resources/faqs#test-app) heißt es, dass, sobald die App mit dem applicationDidBecomeActive-Code geöffnet wird, ein Datensatz von dem sein soll App wird installiert. Wenn ich diesen Code nach applicationDidFinishLaunch verschiebe, erhalte ich einen Installationsdatensatz, bin mir aber nicht sicher, ob das eine Abweichung von den Facebook-Dokumenten ist. – Julien

+0

Funktionieren Ihre Anzeigen ordnungsgemäß? –

+0

Ich habe noch keine Kampagnen gestartet, weil ich pro Download bezahlen möchte und der Code zum Nachverfolgen, ob die App heruntergeladen wurde, funktioniert nicht richtig. – Julien

0

Ich habe die Lösung für dieses Problem oder zumindest einen Grund, warum einige Systeme Responder Feuer nicht in Cordova Projekten gefunden das erweitert AppDelegate Zugriff auf Lifecycle-Responder in iOS Sie möglicherweise nicht bewusst, dass eine andere Komponente auch erweitert AppDelegate und verwendet bereits diesen Responder, dies macht Responder in Ihrer Implementierung unzugänglich .

In meinem Fall: Ich war ein Delegierter zu machen, die den Bildschirm verwischen würde, bevor sie Schnappschuss sensible persönliche Daten zu verstecken und schickte Anwendung in den Hintergrund, musste ich einige Code

- (void)applicationWillResignActive:(UIApplication *)application{} 
- (void)applicationDidBecomeActive:(UIApplication *)application{} 
- (void)applicationDidEnterBackground:(UIApplication *)application{} 
- (void)applicationWillEnterForeground:(UIApplication *)application{} 

ich hinzufügen nicht bekomme Antwort von DidBecomeActive obwohl, auch wenn ich einfach zu NSLog etwas versucht habe.Ich suchte Projekt für DidBecomeActive Schlüssel und es erschien, dass FirebasePlugin diese Methode bereits für einige andere Sachen verwendete (dieses Plugin wurde zum Projekt von einer anderen Person hinzugefügt, so dass ich nicht wusste, wie es funktioniert). Was ich getan habe, wurde einfach meinen Code in Firebase-Plugin verschoben und fehlende Responder implementiert, weil ich nur etwa 10 Zeilen alle zusammen hatte.