排毒不能处理通用链接

时间:2018-12-02 01:29:19

标签: ios ios-universal-links detox

我一直在尝试使用https://github.com/wix/Detox/blob/master/docs/APIRef.MockingOpenFromURL.md中的device.openURL使iOS通用链接与Detox一起使用,但是不起作用。

我尝试过的示例:

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

它永远不会打开我的应用程序,并且经过各种测试之后,排毒似乎仅支持深层链接而不是通用链接。

我可以提到的是,在运行应用程序(在设备和模拟器上)时,通用链接都可以正常工作,这使我相信问题不在于我如何配置通用链接,而在于对它的排毒支持。

在iOS UI测试中,可以通过iMe​​ssage应用程序测试通用链接(请参见https://blog.branch.io/ui-testing-universal-links-in-xcode-9/)。有人知道排毒的类似解决方法吗?

1 个答案:

答案 0 :(得分: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];
}

但是排毒不支持。您应该使用:

- (BOOL)application:(UIApplication *)app
        openURL:(NSURL *)url
        options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
{
  return [RCTLinkingManager application:app openURL:url
                            options:options];
}