Детокс не обрабатывает универсальные ссылки

Я пытался заставить iOS Universal Links работать с Detox, используя device.openURL с https://github.com/wix/Detox/blob/master/docs/APIRef.MockingOpenFromURL.md но это не работает.

Пример того, что я пробовал:

it('should work', async () => {
  await device.sendToHome();
  await device.openURL({
    url: 'https://name.page.link/somewhere,
    sourceApp: 'com.apple.MobileSMS'
  });
});

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

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

В iOS UI Testing можно тестировать универсальные ссылки, используя приложение iMessage (см. https://blog.branch.io/ui-testing-universal-links-in-xcode-9/). Кто-нибудь знает подобный обходной путь для детоксикации?

0 ответов

Вы использовали этот код в AppDelegate.m:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  return [RCTLinkingManager application:application openURL:url
                  sourceApplication:sourceApplication annotation:annotation];
}

Но это не поддерживается Detox. Вы должны использовать:

- (BOOL)application:(UIApplication *)app
        openURL:(NSURL *)url
        options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
{
  return [RCTLinkingManager application:app openURL:url
                            options:options];
}
Другие вопросы по тегам