Универсальные ссылки: как вернуться программно? - PullRequest
0 голосов
/ 30 мая 2018

У меня есть первое собственное приложение для iOS (скажем, «приложение вызывающего абонента»), которое открывает второе (скажем, «приложение вызывающего абонента») с URL-адресом вида https://calleeapp.com (Universal Link).Я хочу, чтобы пользователь выполнил какую-то задачу в «приложении вызываемого абонента», и после завершения я хочу вернуться автоматически к «приложению вызывающего абонента», предоставив результат такой задачи (тогда URL-адрес будет чем-то похожимна https://callerapp.com/check?result=xxxx).

Каким должен быть лучший / подходящий способ справиться с этим?

1 Ответ

0 голосов
/ 30 мая 2018

Нам нужно, чтобы у вас была возможность иметь код в приложении вызывающего и вызывающего абонентов, чтобы сделать это.(Если стороннее приложение не реализует какой-либо API для URL-адресов обратного вызова).

В приложении вызывающего абонента, хотя вы и хотели бы взглянуть на следующий метод AppDelegate:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    // if it opened the app from some link
    if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
        // the query will give you "result=xxxx"
        if let query = userActivity.webpageURL?.query {
             // code that pulls out the result from the string you get back
        }
     ...

Вы такжена самом деле необходимо поддерживать универсальную ссылку, убедившись, что у вашего AppName.entitlements есть ключ Associated Domains с одним из значений, равным applinks:callerapp.com, чтобы приложение-вызывающее приложение знало, что оно может открывать URL-адреса в этой схеме.(И наоборот, в приложении вызываемого абонента, если вы тоже это реализуете)

...