2017-12-25 2 views
2

Ich habe 2 iOS-Anwendungen, mit URL Scheme ich in der Lage bin App zu öffnen B durch A wie ich URL Scheme in B erstellt haben und mit OpenURL es aus der Anwendung aufrufen B. Außerdem kann ich die Daten weitergeben.URL-Schema iOS | Open-Source-Anwendung Programmtically

Aber was ich suche, gibt es eine Möglichkeit, zurück zu Anwendung A auf ein bestimmtes Ereignis zu verschieben.

In B bekomme ich alle Details über A in sourceApplication, aber wie geht es zurück?

Müssen wir URL Scheme für beide Apps für die Kommunikation miteinander erstellen? oder gibt es eine Möglichkeit, sourceApplication aufzurufen und zurückzugehen?

Ausgabe 1

bei Facebook SDK, ich URL Scheme für meine Anwendung erstellen, denn sobald die Authentifizierung erfolgt ich Facebook SDK möchte, dass meine App rufen, dass Recht, aber ich habe registrieren nicht meine app scheme in Facebook SDK info.plist . wie funktioniert es?

Ausgabe 2 Ich habe Simulator und Gerät beide versucht. wenn ich canOpenURL nenne es gibt mir einen Fehler

-canOpenURL: failed for URL: "openb://" - error: "This app is not allowed to query for scheme openb"

Aber wenn es UIApplication.shared.open direkt anrufen startet es die Anwendung erfolgreich.

Irgendwelche führt hier?

+0

eine andere URL-Schema verwenden? – jcaron

+0

Sie meinen, in diesem Fall müssen wir 'URL Scheme' für beide Apps für die Kommunikation untereinander registrieren? – Dipika

+0

ja, ein URL-Schema für jede App, so dass sie sich gegenseitig anrufen können. – jcaron

Antwort

1

Wenn Sie iOS Anwendung von einem anderen App URL Scheme aufrufen möchten, ist der Weg. Mit einem URL-Schema können Sie über ein von Ihnen definiertes Protokoll mit anderen Apps kommunizieren. Um mit einer App zu kommunizieren, die ein solches Schema implementiert, müssen Sie eine entsprechend formatierte URL erstellen und das System auffordern, sie zu öffnen. Um die Unterstützung für ein benutzerdefiniertes Schema zu implementieren, müssen Sie die Unterstützung für das Schema deklarieren und eingehende URLs verarbeiten, die das Schema verwenden.

How to move back or open sourceApplication?

Um dies zu erreichen Sie haben URL Scheme für beide der Anwendung zu erstellen.

Issue 1 and 2

Vor iOS 8, jeder wurde mit canOpenURL zu prüfen, ob diese URL für nicht vorhanden und wenn ja openURL für die Anwendung aufgerufen wird. Aber die Sorge kam, als nur wenige Entwickler/Apps damit begannen, das iPhone des Benutzers (was alle Anwendungen installiert hatten) zu Werbezwecken zu verfolgen. Deshalb kam Apple mit der Lösung URL Scheme Whitelist.

Damit nach, wenn Sie canOpenURL verwenden wollen, müssen Sie die URL Scheme sonst die weiße Liste, es wird durch einen Fehler wie error: This app is not allowed to query for scheme und wenn Sie die Anwendung verwenden openURL direkt öffnen möchten.

Ja, es hat viele SDKs Login-Flow, aber es macht Sinn.

Weitere Informationen canOpenURL(_:)