Wie registriere ich ein benutzerdefiniertes URL-Schema zum Öffnen einer App bei Xcode 4?

74

Xcode4 bittet um eine Vielzahl von Argumenten, um diese einfache Sache zu ermöglichen:

NSString *stringURL = @"twitterriffic://";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];

Xcode 4 Info.plist Editor

Wofür sind all diese Eigenschaften? Warum ein Bild? Muss ich die App-ID hier wiederholen? Welche Rolle soll ich wählen, wenn ich möchte, dass jemand diese URL aufrufen kann, um meine App zu öffnen? Und wofür sind diese zusätzlichen URL-Eigenschaften?

Ich habe kein Xcode4-bezogenes Tutorial gefunden, wie man ein solches URL-Schema bei Xcode 4 registriert.

offener Frosch
quelle
Wenn Sie eine Idee zur Verwendung von "Zusätzliche URL-Typ-Eigenschaften" haben?
user454083
3
Ich habe es in dem Beitrag erklärt und auch Code für zusätzliche Parameter aus der benutzerdefinierten URL bereitgestellt
2cupsOfTech

Antworten:

99

Bearbeiten Sie Ihre AppName-Info.plist-Datei

  • Öffnen Sie links "Unterstützende Dateien" (Ordner) und klicken Sie auf "YourAppName-Info.plist".
  • Wählen Sie eine Zeile wie "Bundle Creator OS Type Code" und fahren Sie mit der Maus über die Zeile und klicken Sie auf das Symbol (+)
  • Dadurch wird eine neue Zeile erstellt und "URL-Typen" eingegeben.
  • Klicken Sie auf den Arror links und sehen Sie Element 0, und Sie benennen den Wert in Element 0 wie gezeigt in "URL-Schemata" um
  • Bearbeiten Sie dann das Feld in Element 0 und geben Sie Ihr Protokoll ein. Ich habe "goomzee" wie gezeigt eingegeben

Wenn ich diese App jetzt auf meinem Simulator installiere, Safari öffne und "goomzee: //" in die Adressleiste eingebe, wird meine App gestartet.

Mike S.
quelle
4
In der .plist-Datei lautet der relevante Code:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>goomzee</string> </array> </dict> </array>
Noach Magedman
6
<key> CFBundleURLTypes </ key> <array> <dict> <key> CFBundleURLName </ key> <string> com.iphonebasic.testdemo </ string> <key> CFBundleURLSchemes </ key> <array> <string> iphonebasic-testdemo </ string> </ array> </ dict> </ array>
9to5ios
@Mike S. Ich habe die von Ihnen angegebenen Schritte ausprobiert. Sie werden ausgeblendet, wenn ich von Info.plist zu einer anderen Registerkarte wechsle.
Nij
28

Ja, das Zeug ist nicht einfach, oder?

Ich habe die Schritte zum Registrieren einer benutzerdefinierten URL hier beschrieben: Benutzerdefinierte URLs

Der Schlüssel dazu ist jedoch das Einrichten eines Werts für "URL-Typen" in Ihrer .plist-Datei. So sieht es in XCode 5 aus:

URL-Typen

In diesem Beispiel habe ich das MKB- Präfix registriert , sodass ich diesen neuen URL-Typ jetzt in Hyperlinks auf Webseiten und E-Mails verwenden kann (wenn ich eine E-Mail in der iPad Mail-App lese):

Mail App

Wenn ein Benutzer auf einen dieser Links tippt, wird meine iPad-App gestartet und ich kann auf die vollständige URL-Zeichenfolge zugreifen, um die anderen Parameter aus der URL zu extrahieren (z. B. "DocumentNumber = 100").

Das einzige Problem ist, dass ich noch nicht herausgefunden habe, wie ich testen kann, ob ein Benutzer eine iPad-App installiert hat, die ein bestimmtes Präfix erkennen kann.

Wenn dies nicht der Fall ist und sie auf einen dieser MKB: // -Links auf ihrem iPad tippen, wird eine hässliche Fehlermeldung angezeigt:

Nee

Mike Gledhill
quelle
1
Wow fantastische Erklärung auf Ihrem Blog. Das hat mir ca. 2 Stunden gespart. VIELEN DANK!!
Wirsing
Die Sache ist, dass MKB://es danach irgendetwas geben muss.
Bartłomiej Semańczyk
17

Sie können Ihre benutzerdefinierte URL weiterhin registrieren, indem Sie die Datei info.plist Ihrer App bearbeiten (wie in einer Ihrer vorherigen Fragen gezeigt ). Der neue Editor in Xcode 4 soll das Hinzufügen der Einträge vereinfachen. Er nimmt lediglich die gleichen Änderungen an info.plist vor, die Sie manuell vornehmen würden. Wenn Sie den neuen Editor verwenden möchten, müssen Sie nur die Felder "Kennung" und "URL-Schemata" ausfüllen. Sie benötigen kein Bild, Symbol oder zusätzliche URL-Eigenschaften.

Die anderen Eigenschaften (Symbol usw.) sind nicht gut dokumentiert, scheinen jedoch nur unter Mac OS X anwendbar zu sein und können im Dialogfeld "Informationen" des Finders verwendet werden, um anzuzeigen, welche Arten von URLs eine bestimmte App öffnen kann. Schauen Sie sich beispielsweise das Launch Services-Programmierhandbuch an .

Robin Summerhill
quelle
0

Was Sie in diesem Editor ändern, spiegelt sich auch in der Info-Plist-Datei Ihres Projekts wider. Es hat die Form von ProjectName -Info.plist. Hoffentlich hilft das.

Ying
quelle