Obwohl die YouTube-App jetzt keine integrierte App von Apple ist, sieht sie aus wie beim Tippen auf einen YouTube-Link (z. B. in E-Mails), der mit Ссылка , öffnet die YouTube App sofort.
Gibt es einen Weg dazu benutzerdefinierte Apps in iOS 6? Ich kenne nur benutzerdefinierte Schemas als die Möglichkeit, eine App per URL zu starten.
Ich bin mir nicht sicher, ob ich Ihre Frage verstehe, aber hier ist mein Versuch einer Antwort. Sie fragen, ob es eine Möglichkeit gibt, Apps von Drittanbietern aus einer anderen App heraus zu öffnen. Die Antwort ist, wenn die App ein benutzerdefiniertes URL-Schema implementiert hat (siehe hier und navigieren Sie zum Abschnitt Kommunikation mit anderen Apps).
Aber Sie scheinen auch zu sagen, dass Sie bereits darüber wissen. In diesem Fall bin ich mir ziemlich sicher, dass es keinen anderen Weg gibt.
So registrieren Sie einen URL-Typ für Ihre App
Fügen Sie den CFBundleURLTypes-Schlüssel in die Info.plist-Datei Ihrer App ein. Der CFBundleURLTypes-Schlüssel enthält ein Array von Wörterbüchern, von denen jedes ein URL-Schema definiert, das die App unterstützt.
Rufen Sie die URL (registriert wie oben)
auf %Vor%Behandelt Aufrufe von benutzerdefinierten URL-Schemas
Eine App mit einem eigenen benutzerdefinierten URL-Schema muss URLs verarbeiten können, die an sie übergeben wurden. Alle URLs werden entweder beim Start oder während der Ausführung der App oder im Hintergrund an Ihren App-Delegaten weitergeleitet. Um eingehende URLs zu verarbeiten, sollte Ihr Delegat die folgenden Methoden implementieren:
Verwenden Sie die Methoden application:willFinishLaunchingWithOptions:
und application:didFinishLaunchingWithOptions:
, um Informationen zur URL abzurufen und zu entscheiden, ob Sie sie öffnen möchten. Wenn eine der Methoden NO zurückgibt, wird der URL-Bearbeitungscode Ihrer App nicht aufgerufen.
Verwenden Sie in iOS 4.2 und höher die Methode application:openURL:sourceApplication:annotation:
, um die Datei zu öffnen.
Verwenden Sie in iOS 4.1 und früheren Versionen die Methode application:handleOpenURL:
, um die Datei zu öffnen.
Wenn Ihre App beim Eintreffen einer URL-Anforderung nicht ausgeführt wird, wird sie gestartet und in den Vordergrund verschoben, sodass sie die URL öffnen kann. Die Implementierung Ihrer Methode " application:willFinishLaunchingWithOptions:
" oder " application:didFinishLaunchingWithOptions:
" sollte die URL aus dem Optionsverzeichnis abrufen und ermitteln, ob die App sie öffnen kann. Wenn dies der Fall ist, geben Sie YES zurück und lassen Sie Ihre Methode application:openURL:sourceApplication:annotation:
(oder application:handleOpenURL:
) die tatsächliche Öffnung der URL behandeln. (Wenn Sie beide Methoden implementieren, müssen beide YES zurückgeben, bevor die URL geöffnet werden kann.)
Wenn Ihre App ausgeführt wird, sich aber im Hintergrund befindet oder ausgesetzt wird, wenn eine URL-Anforderung eintrifft, wird sie in den Vordergrund verschoben, um die URL zu öffnen. Kurz darauf ruft das System die application:openURL:sourceApplication:annotation:
des Delegierten auf, um die URL zu prüfen und sie zu öffnen. Wenn Ihr Stellvertreter diese Methode nicht implementiert (oder die aktuelle Systemversion iOS 4.1 oder älter ist), ruft das System stattdessen die application:handleOpenURL:
-Methode Ihres Stellvertreters auf.
Hinweis
Wenn zwei oder mehr Anwendungen die gleiche benutzerdefinierte URL registriert haben, gibt es keine Garantie dafür, welche Anwendung das iOS öffnet, wenn die benutzerdefinierte URL aufgerufen wird.
Weitere Informationen
Ich stelle mir vor, dass die native Mail-App die gleiche Methode verwendet wie alle Apps zum Öffnen von URLs (wodurch eine App geöffnet wird oder Mobile Safari zum Abschließen der Anfrage verwendet wird, wenn keine installierte App die URL verarbeiten kann).
Sie können dasselbe Ergebnis mit den folgenden Schritten erreichen:
%Vor%Dadurch wird die YouTube App geöffnet, wenn sie installiert ist, oder Safari zum Abspielen des Videos verwendet, wenn die YouTube App nicht installiert ist.
---- UPDATE -----
Ich habe mich entschieden, zu prüfen, wie genau die YouTube-App das macht.
Ich habe etwas Interessantes gefunden!
Hier sind die URLs, die die YouTube App deklariert:
fb [appID]
vnd.youtube
youtube
Dies bedeutet, dass Ссылка die Anfrage an eine der URLs in der Liste weiterleitet. Aber wenn ich es versuche, sehe ich Mobile Safari nicht öffnen und dann weiterleiten.
Ich werde weiter untersuchen, es ist sehr faszinierend.
Tags und Links ios6 url-scheme launching-application custom-url