Универсальные ссылки: как вернуться программно?
У меня есть первое собственное приложение 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, если вы тоже это реализуете)