iOS: метод Apple Universal Link continueUserActivity не вызывается, если приложение не установлено?

Я использую концепцию универсальных ссылок Apple для чтения/получения общей ссылки или URL-адреса (пользователь щелкнул по ней через сообщение, электронную почту и другие социальные приложения) внутри метода continueUserActivity в моем приложении.

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

Если пользователь щелкнул ссылку, а приложение не установлено на устройстве, то ссылка автоматически перенаправляет в Apple Store для установки приложения (используется javascript), после установки приложения, если вы его открываете, метод continueUserActivity вообще не вызывается. Вызывается ли метод continueUserActivity, если вы устанавливаете приложение из Apple Store и открываете его? я что-то пропустил? пожалуйста, помогите мне в этом.

Я тестирую это на устройстве с iOS 9.3.1

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * restorableObjects))restorationHandler {

  if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {

    if ([[userActivity.webpageURL absoluteString] hasSuffix:@"12345"]) {

        // Open Item details view controller
    }
  }
  return YES;
}

person Ganesh G    schedule 07.12.2016    source источник


Ответы (1)


Для такого рода задач вам нужно будет создать серверную часть, например, когда эта ссылка нажата, затем создайте сеанс для этого конкретного устройства, а когда приложение откроется, вызовите API в фоновом режиме, который проверит сеанс для этого устройства, а затем ответит на параметры . В приведенном выше случае вам нужно будет управлять многими вещами. Если вы не возражаете против использования третьей стороны, выберите Branch.io, они будут обрабатывать все, что вам нужно, и не будут вызывают боль в развитии.

person Parth Adroja    schedule 07.12.2016
comment
Спасибо за ответ. Таким образом, метод continueUserActivity не будет вызываться, если мы установим приложение из магазина Apple и откроем его из магазина. - person Ganesh G; 07.12.2016
comment
@GaneshGuturi Да, в вашем случае он не будет вызываться, пока вы не обработаете его явно. - person Parth Adroja; 07.12.2016
comment
Чтобы уточнить, метод continueUserActivity вызывается только в том случае, если приложение открывается через Universal Links или Spotlight. Поскольку приложение должно быть уже установлено, чтобы любой из этих параметров был доступен, по определению continueUserActivity не будет вызываться, если пользователю необходимо сначала загрузить приложение. - person Alex Bauer; 07.12.2016