Detox 的 `device.openURL` 不适用于 Android

问题描述

我刚刚开始为我的项目使用 Detox,到目前为止,对于 iOS 端到端测试来说,这是一次令人难以置信的体验。 Huuuuuge 感谢 Wix 的创造者和维护者!

不过到目前为止,Android 体验要困难得多。我很快就陷入了死胡同,因为 device.openURL 似乎不起作用。我的 React Native 应用程序支持自定义 URL 方案和通用链接。我可以确认他们在手动测试中工作,包括开发和生产。它们在使用 npx uri-scheme open --android 时也有效。

根据 Detox 建议,我使用的是 Pixel API 28 ASOP 模拟器。我也试过 Pixel 3 API 28 模拟器。我可以确认 openURL 在 iOS 模拟器中确实有效。

预期:其中任何一个都会打开应用并导航到登录屏幕。

    await device.openURL({url: 'heylo-alpha://login'})
    await device.openURL({url: 'https://heylo-alpha.web.app/login'})

实际:应用未打开。

我可以确认 device.launchApp 确实适用于 url 参数,但 newInstance 必须设置为 true。考虑到每次从头开始杀死和重新启动应用程序所涉及的巨大开销,这对于每个测试来说都不太实用。我可以确认该应用程序已安装到 Android 模拟器,并且它支持这些链接,如以下命令所证明的那样:

$ npx uri-scheme open "heylo-alpha://login" --android
$ npx uri-scheme open "https://heylo-alpha.web.app/login" --android

以上都打开应用程序到登录屏幕。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)