【问题标题】:How to open an android app as default using deeplink in Detox testing如何在 Detox 测试中使用深度链接默认打开 android 应用程序
【发布时间】:2021-09-01 16:14:28
【问题描述】:

我正在尝试使用 Detox 为我的 react 本机应用程序打开一个特定页面。在以下方法中传递深层链接时,Android 中会提示选择我的应用程序或 Chrome。有没有办法让我的应用程序成为 Detox 中这些链接的默认应用程序? 这两个我都试过了

await device.openURL({url: '{{URL}}'

还有

await device.launchApp({
  url: '{{URL}}',
  newInstance: false
})

【问题讨论】:

  • 你解决了吗?
  • @akash 你是怎么做到的?

标签: android automated-tests detox


【解决方案1】:

使用 Firebase 动态链接

Receive Firebase Dynamic Links on Android

使用来自 Firebase 的深层链接创建动态链接,然后调用动态链接的 url。

您可以从 firebase 控制台调整动态链接的行为(例如:如果安装了应用程序,则使用该应用程序运行此 url,如果未安装,则使用浏览器)

【讨论】:

  • 这没有回答问题,这是关于 e2e 测试深度链接与 detox 的问题。我正在使用 firebase 动态链接,一切正常,但希望进行 e2e 测试以发现未来可能的回归。
  • 这是安卓问题,不是排毒问题。如果您想手动解决,可以将您的应用设置为该链接的默认应用。
  • 这也能解决我的问题!我已经使用 autoVerify 属性创建了一个意图过滤器,但它似乎没有做任何事情......你知道 autoVerify 选项是否也适用于非公开可用的应用程序吗? (目前仍处于测试阶段)
  • @dentemm 检查这个答案stackoverflow.com/questions/36211104/…
  • @dentemm 你是怎么做到的?
【解决方案2】:

将你的包放在 sourceApp 参数中

 await device.launchApp({
    newInstance: true,
    url: 'scheme://some.url',
    sourceApp: 'com.example.yourpackage'
  });

【讨论】:

  • 看来 sourceApp 仅在 openUrl 上可用,并且仅在 iOS 上可用(已经正常工作)。是 Android 让我望而却步
猜你喜欢
  • 2023-01-25
  • 2022-09-23
  • 1970-01-01
  • 2017-11-16
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-26
相关资源
最近更新 更多