ObjC Firebase Dynamic Links работает только через браузер - PullRequest
0 голосов
/ 02 октября 2019

Я настроил динамические ссылки на консоли Firebase, но они работают правильно только если я иду через браузер (например, Safari). Когда я нажимаю URL-адрес, и он переходит непосредственно к приложению, он не открывает нужную страницу.

Вот как я тестирую ее (на реальном устройстве):

  1. Iвставил ссылку на короткий URL из firebase в приложение заметок.
  2. Я долго нажимал и открывал в Safari 2.1. После загрузки страницы я нажимаю «Открыть», и приложение корректно запускается на нужной странице.
  3. Затем я вернулся в приложение Notes, сделал долгое нажатие и выбрал «Открыть с помощью приложения»

На этом 3-м шаге приложение не запускается на нужной странице.

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

Воткод:

- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:
#if defined(__IPHONE_12_0) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_12_0)
(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> *_Nullable))restorationHandler {
#else
(nonnull void (^)(NSArray *_Nullable))restorationHandler {
#endif  // __IPHONE_12_0

    BOOL handled = [[FIRDynamicLinks dynamicLinks] handleUniversalLink:userActivity.webpageURL
                                                                completion:^(FIRDynamicLink * _Nullable dynamicLink,
                                                                             NSError * _Nullable error) {
                                                                    NSString *quickActionLinker = [Properties getStringValue:@"quickActionsLinker"];
                                                                    NSString *action = [dynamicLink.url absoluteString];
                                                                    [QuickActionsHandler handleQuickAction:quickActionLinker fromCode:[action componentsSeparatedByString:@"https://"][1] main:self.main];
                                                                }];      
    return handled;
}

При запуске через браузер dynamicLink.url возвращает строку, но при непосредственном запуске приложения возвращает ноль.

Есть ли способ выполнить запрос, не заходя в браузер?

...