2016-08-02 25 views
1

Wie Branch Dokumentation Staaten und meine aktuelle Implementierung geht, werden die Zweig-Links in der AppDelegate erkannt, ein View-Controller wird entsprechend registriert und dann von dort gestartet.Gibt es eine Möglichkeit, Branch Deeplinks zu verwenden, während die App bereits läuft?

Gibt es eine Möglichkeit, dass ich dies nicht in der AppDelegate aber anderswo tun kann? Mein Hauptproblem ist, dass wenn meine App bereits gestartet ist und jemand auf einen Branch Deeplink klickt, funktioniert es wie es soll, aber bringt mich zurück zum Startbildschirm der App, anstatt auf der aktuell gestarteten Ansicht zu bleiben.

Ich versuchte

[branch initSessionWithLaunchOptions:launchOptions automaticallyDisplayDeepLinkController:NO]; 

und Starten des View-Controller von anderer Stelle verwenden, aber jetzt verstehe ich nicht, wie die „deepLinkingCompletionDelegate“ werden die Daten begleiten den Link zu holen aufgerufen werden.

+1

Docs zeigen, dass Sie Ihre spezifischen VC für Deeplinking https://dev.branch.io/getting-started/deep-link-routing/guide/#configure-view-controller-to-accept-deep-links registrieren können – Shubhank

Antwort

1

Alex von Ast hier:

Dieser Code-Schnipsel nicht Notwendigkeit in Ihrem AppDelegate zu sein, aber sie müssen in den richtigen App-Lebenszyklus-Methoden aufgerufen werden. Der typische Ort für diese zu definieren ist der AppDelegate, und es wäre eine viel fortgeschrittenere Implementierung, um sie irgendwo anders zu setzen. Selbst wenn Sie dies täten, wäre der Effekt der gleiche und Sie würden das Problem, das Sie identifiziert haben, nicht vermeiden.

Es klingt wie Sie unsere grundlegende automatic deep link routing Ansatz verwenden. Was Sie tun möchten, ist build your own custom router, damit Sie intelligent entscheiden können, was mit den Verbindungsdaten zu tun ist. Mit anderen Worten, Sie werden immer noch die Link-Parameter sofort erhalten, aber Sie werden in der Lage sein zu entscheiden, nicht den Startbildschirm öffnen, wenn die App bereits ausgeführt wird.

+0

Hallo Alex. Wir versuchen, die Parameter mit dem angepassten Router-Ansatz zu erhalten, und wir können keine Parameter erhalten, um die Navigation danach zu überprüfen. Weißt du, was falsch sein kann? Die Links funktionieren, aber im Debug-Modus kann ich keine Parameter mit dem Code erhalten, der auf deinem eigenen angepassten Router bereitgestellt wird. – Andreas777

+0

@ Andreas777 Dies könnte durch eine Reihe von Dingen verursacht werden. Häufig ist es, wenn der in Ihrer App verwendete Zweigschlüssel nicht mit dem Zweig übereinstimmt, der zum Erstellen der Verknüpfung verwendet wurde. Ich würde das zuerst prüfen und dann, wenn es immer noch nicht funktioniert, gehen Sie weiter und stellen Sie eine neue Frage mit mehr Details oder sogar [senden Sie ein Ticket an unser Integrationsteam] (https://support.branch.io/support/tickets/ Neu) –