Универсальные ссылки: как вернуться программно?

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

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

1 ответ

Мы сделаем так, чтобы вы могли иметь код для приложения вызывающего и вызывающего абонентов, чтобы сделать это. (Если стороннее приложение не реализует какой-то 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 имеет ключ связанных доменов с одним из значений applinks:callerapp.com так, чтобы приложение вызывающего абонента знало, что оно может открывать URL-адреса в этой схеме. (И наоборот, в приложении callee, если вы тоже это реализуете)

Другие вопросы по тегам