Detox не поддерживает универсальные ссылки

Я пытался заставить универсальные ссылки iOS работать с 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/). Кто-нибудь знает подобный обходной путь для детокса?


person jbohman    schedule 02.12.2018    source источник


Ответы (1)


Вы использовали этот код в 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];
}

Но Детокс не поддерживает. Вам следует использовать:

- (BOOL)application:(UIApplication *)app
        openURL:(NSURL *)url
        options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
{
  return [RCTLinkingManager application:app openURL:url
                            options:options];
}
person mgz    schedule 26.02.2019
comment
Действительно. application:openURL:sourceApplication:annotation: устарел и не рекомендуется использовать. Поскольку Detox не поддерживает iOS 9, мы не проверяем этот метод и не вызываем его. - person Leo Natan; 31.03.2019