Як зареєструвати власну схему URL-адреси для відкриття програми за допомогою Xcode 4?


74

Xcode4 вимагає величезної кількості аргументів, щоб зробити цю просту річ можливою:

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

Редактор Xcode 4 Info.plist

Для чого призначені всі ці властивості? Чому саме зображення? Чи повинен я повторити тут ідентифікатор програми? Яку роль вибрати, якщо я хочу, щоб хтось міг викликати цю URL-адресу, щоб відкрити мій додаток? А для чого ці додаткові властивості типу url?

Я не знайшов підручника, пов’язаного з Xcode4, як зареєструвати таку схему URL-адрес у Xcode 4.


Якщо ви маєте уявлення про використання "Додаткових властивостей типу URL-адреси"?
user454083

3
Я пояснив це в дописі, а також надав код додатковим параметрам із користувацької URL-адреси: 2cupsoftech.wordpress.com/2013/01/08/…
2cupsOfTech

Відповіді:


99

Відредагуйте файл AppName-Info.plist

  • Відкрийте "Підтримуючі файли" (папка) ліворуч і натисніть "YourAppName-Info.plist"
  • Виберіть такий рядок, як "Код типу ОС розробника пакета", наведіть курсор на рядок і натисніть символ (+)
  • Це створює новий рядок і вводить "типи URL"
  • Клацніть на стрілку ліворуч і перегляньте елемент 0, і ви перейменуєте значення в пункті 0 на «Схеми URL-адрес», як показано
  • Потім відредагуйте поле в пункті 0 та введіть свій протокол; Я набрав "goomzee", як показано

Тепер, якщо я встановлю цю програму на своєму симуляторі, і відкрию Safari, і в адресному рядку наберу "goomzee: //", вона запустить мою програму.


4
У файлі .plist відповідний код:<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> com- iphonebasic-testdemo </string> </array> </dict> </array>
9to5ios

@Mike S. Я спробував наведені вами кроки, і він зникає, коли я переходжу з Info.plist на іншу вкладку.
Nij,

29

Так, ці речі не є простими, чи не так?

Я описав кроки, необхідні для реєстрації користувацької URL-адреси тут: Спеціальні URL-адреси

Але, головним чином, ключовим фактором є встановлення значення "Типи URL" у вашому файлі .plist. Ось як це виглядає в XCode 5:

Типи URL-адрес

У цьому прикладі я зареєстрував префікс MKB , тож тепер я можу використовувати цей новий тип URL-адрес у гіперпосиланнях на веб-сторінках та електронних листах (якщо я читаю електронний лист у програмі iPad Mail):

Програма пошти

Якщо користувач натискає одне з цих посилань, мій додаток iPad запускається, і я можу отримати доступ до повного рядка URL-адреси, щоб витягти інші параметри з URL-адреси (наприклад, "DocumentNumber = 100")

Єдина помилка полягає в тому, що я ще не вирішив, як перевірити, чи встановлений у користувача додаток iPad, який може розпізнати певний префікс.

Якщо вони цього не зробили , і вони натиснуть одне з цих посилань MKB: // на своєму iPad, вони отримають потворне повідомлення про помилку:

Ні


1
Вау фантастичне пояснення у вашому блозі. Це заощадило мені близько 2 годин. ДЯКУЮ!!
Wirsing

Річ у тім, що ПІСЛЯ MKB://МОЖЕ бути що-небудь.
Bartłomiej Semańczyk

17

Ви можете продовжувати реєструвати власну URL-адресу, редагуючи файл info.plist вашого додатка (як показано в одному з попередніх запитань ). Новий редактор у Xcode 4 повинен бути зручним для полегшення додавання записів - все, що він робить, це внесення тих самих змін info.plist, які ви робите вручну. Якщо ви хочете використовувати новий редактор, вам потрібно лише заповнити поля "Ідентифікатор" та "Схеми URL-адрес". Вам не потрібні зображення, піктограма чи додаткові властивості URL-адреси.

Інші властивості (піктограма тощо) недостатньо добре задокументовані, але, схоже, застосовуються лише в Mac OS X і можуть бути використані в діалоговому вікні Finder Get Info для відображення типів URL-адрес, які може відкрити певна програма. Наприклад, погляньте на Посібник із програмування Launch Services .


0

Те, що ви змінили в цьому редакторі, також відображається у файлі інформаційного списку вашого проекту. Він має форму ProjectName -Info.plist. Сподіваємось, це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.