Ist es möglich, starten Sie eine weitere app in iOS 8 mit Swift?
Ist es möglich, starten Sie eine beliebige app in einer anderen app?
Z.B. in meiner Anwendung soll der Benutzer auf einen Knopf drücken und eine weitere app starten (schließen Sie nicht die aktuelle app, öffnen Sie einfach eine andere app, und schalten Sie es).
Wie kann ich es in iOS 8 mit Swift?
- mögliche Duplikate von Kann eine iPad-app direkt starten einer anderen app?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einzige Weg, dies zu tun, ist die Verwendung einer deep link, die der Entwickler einer app muss erstellt werden.
Dem iOS-SDK nicht zulassen, dass Ihre app zur Interaktion mit anderen Anwendungen, es sei denn, es verwendet die neue Extensions framework eingeführt mit iOS 8. Jedoch, diese Erweiterung können Sie nur bieten, Inhalte und Funktionen der eigenen app innerhalb der anderen: Sie können Sie nicht zwingen, eine andere app zu öffnen.
Was Sie beschrieben haben ist nur möglich mit deep-links, die sind ziemlich selten und müssen definiert werden, indem der Entwickler die app, die Sie öffnen möchten.
So, zum Beispiel, einen link in Ihrer app öffnen könnte, die Pocket-Anwendung, die ermöglicht Ihnen das speichern von Artikeln für später Lesen, mit einem
pocket://
link (im Gegensatz zuhttp://
oderhttps://
) und, ähnlich wie die Pebble Smartwatch-Anwendung geöffnet werden kann, mit einempebble://
link. Allerdings sind diese verbindungen, die definiert sind durch die Entwickler dieser Anwendungen, und diese Technik nicht für alle apps.Ich denke, Sie sind auf der Suche für die Apple-URL-Schemas. Wenn die Drittanbieter-app irgendwelche URL-Schemata definiert, dann können Sie den folgenden code verwenden, um es zu öffnen:
URL
stattNSURL
-, Kraft-unwrapping es einmal in der init (oder, besser noch, fügen Sie einif let url = url
auf die bedingte), und das fallenlassen der== true
.Andere beschrieben haben, die richtige Idee hier schon, aber mit einigen Themen rund um den Umgang mit dem URL und die Funktion aufrufen.
UIApplication.shared.open(_ url:)
ist als veraltet markiert und ersetzt Sie durch eine neue version mit einem Abschluss-handler.Wie andere erwähnt haben, müssen Sie die Empfänger-app definiert haben, die ein URL-Schema. Vorausgesetzt, Sie haben, können Sie etwas wie das hier tun:
Egal, welche Sprache Sie verwenden (Obj-C/Swift), können Sie immer
openURL
zu öffnen ein URL-Schema zum starten einer app (wenn die URL bereitgestellt wird).Wir können dies tun, indem Sie die benutzerdefinierte URL, die app und nach, dass wir uns öffnen können benutzerdefinierte URL, die beim klicken-Ereignis einer Schaltfläche.