Поиск…


замечания

Полезная документация Apple с примерами и пояснениями.

Открытие приложения на основе его схемы URL

Чтобы открыть приложение с определенной схемой URL todolist:// :

Objective-C

NSURL *myURL = [NSURL URLWithString:@"todolist://there/is/something/to/do"];
[[UIApplication sharedApplication] openURL:myURL];

стриж

let stringURL = "todolist://there/is/something/to/do"
if let url = NSURL(string: stringURL) {
    UIApplication.shared().openURL(url)
}

HTML

<a href="todolist://there/is/something/to/do">New SMS Message</a>

Примечание. Полезно проверить, можно ли открыть ссылку, чтобы в противном случае отобразить соответствующее сообщение пользователю. Это можно сделать с canOpenURL: метода canOpenURL:

Добавление схемы URL в собственное приложение

Предположим, вы работаете над приложением под названием MyTasks , и вы хотите разрешить входящие URL-адреса создавать новую задачу с заголовком и телом. URL-адрес, который вы проектируете, может выглядеть примерно так:

mytasks://create?title=hello&body=world

(Конечно, параметры text и body используются для заполнения нашей задачи, которую мы создаем!)

Вот «Большие шаги» для добавления этой схемы URL в ваш проект:

  1. Зарегистрируйте URL-схему в файле Info.plist вашего приложения, чтобы система узнала, когда нужно перенаправить URL-адрес в ваше приложение.
  2. Добавьте функцию в ваш UIApplicationDelegate который принимает и обрабатывает входящие URL-адреса.
  3. Выполнять любую задачу при открытии этого URL-адреса.

Шаг 1. Зарегистрируйте схему URL в Info.plist:

Во-первых, нам нужно добавить запись «URL-адреса» в наш файл Info.plist. Нажмите кнопку (+) здесь: добавление новой строки в Info.plist

... затем введите уникальный идентификатор для вашего приложения, а также схему URL, которую вы хотите использовать. Быть конкретными! Вы не хотите, чтобы схема URL конфликтует с реализацией другого приложения. Лучше быть слишком длинным здесь, чем слишком коротким! заполнение записи URL-адресов в Info.plist

Шаг второй: обрабатывайте URL-адрес в UIApplicationDelegate

Нам нужно реализовать application:openURL:options: на нашем UIApplicationDelegate . Мы проверим входящий URL и посмотрим, есть ли какое-либо действие, которое мы можем предпринять!

Одна из реализаций будет такой:

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
    if url.scheme == "mytasks" && url.host == "create" {
        let title = // get the title out of the URL's query using a method of your choice
        let body = // get the title out of the URL's query using a method of your choice
        self.rootViewController.createTaskWithTitle(title, body: body)
        return true
    }

    return false
}

Шаг третий: выполните задачу в зависимости от URL-адреса.

Когда пользователь открывает ваше приложение через URL-адрес, они, вероятно, ожидали, что что- то произойдет. Возможно, это переход на часть контента, возможно, это создание нового элемента - в этом примере мы собираемся создать новую задачу в приложении!

В приведенном выше коде мы можем увидеть вызов self.rootViewController.createTaskWithTitle(:body:) - поэтому, если ваш AppDelegate имеет указатель на свой контроллер корневого представления, который правильно выполняет функцию, вы все настроены!

Настройка глубокой привязки для вашего приложения проста. Вам просто нужен небольшой URL-адрес, который вы хотите открыть для своего приложения.

Выполните шаги, чтобы настроить глубокую привязку для вашего приложения.

  1. Давайте создадим проект и назовите его DeepLinkPOC.

  2. Теперь выберите цель проекта.

  3. После выбора цели выберите вкладку «информация».

  4. Прокрутите вниз до тех пор, пока не увидите параметр URL-адресов

  5. Нажмите «+».

  6. Вы увидите, что схемы URL добавляют строку, с помощью которой вы хотите открыть приложение. Давайте добавим « DeepLinking » в схемы URL.

Итак, чтобы открыть приложение, вы можете запустить его, введя «DeepLinking: //» в ваше сафари. Строка с глубокой связью имеет следующий формат.

[scheme]://[host]/[path]  --> DeepLinking://path/Page1

где, Схема: «Глубокая точка» Хост: путь «путь»: «Страница1»

Примечание . Даже если вы не добавите хост и путь, он запустит приложение, поэтому не беспокойтесь. Но вы можете добавить хост и путь для дополнительной перенаправления на определенную страницу после запуска приложения.

  1. Теперь добавьте следующий метод в ваш appdelegate.

Swift:

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool 

Objective-C:

-(BOOL)application:(UIApplication *)application
          openURL:(NSURL *)url
          sourceApplication:(NSString *)sourceApplication
          annotation:(id)annotation

Вышеупомянутый метод вызывается всякий раз, когда ваше приложение запускается с использованием строки глубокой привязки, установленной для вашего приложения.

  1. Настало время установить приложение, но подождите, прежде чем вы сразу перейдете к запуску button.Lets делает небольшое изменение в методе запуска приложения схемы.
  • Выберите и отредактируйте свою схему как

введите описание изображения здесь

  • изменить его тип запуска и закрыть введите описание изображения здесь
  1. Теперь нажмите кнопку «Выполнить» (если вы хотите добавить точку останова в ваши методы didFinishLaunchingWithOptions и openURL для наблюдения за значениями)

  2. Появится сообщение «Ожидание запуска DeepLinkPOC (или вашего имени приложения)».

  3. Откройте сафари и введите « DeepLinking: // » в строку поиска, на которой появится приглашение «открыть эту страницу в DeepLinkPOC», чтобы открыть приложение.

Надеюсь, вам нужно знать, как настроить глубокую привязку к вашему приложению :)



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow