使用库react-native-push-notification中的PushNotification .当我们在后台收到新的通知和APP时,需要将APP带回前台,而不需要任何交互.我们使用的是Linking.openURL('my-awesome-app://'),但这在应用程序前台工作,而不是在后台工作.

  PushNotification.localNotification({
    channelId: 'reminders',
    title: '',
    userInteraction: true, // BOOLEAN: If the notification was opened by the user from the notification area or not
    message: info.message,
    // userInfo: info.data,
  });
  const orderDetails = JSON.stringify(info);

  const link = `my-awesome-app://Private/OrderSummeryScreen/${orderDetails}`;
  Linking.openURL (link)
}

推荐答案

在Reaction Native中,后台操作在很大程度上取决于平台(iOS/Android)及其限制.与iOS相比,Android支持更广泛的后台操作.

当推送通知到达时,你想把你的应用程序带到前台,这通常是通过用户点击通知来完成的.在Android中,当收到通知时,你可能会使用HeadlessJS任务来运行一些代码,但在没有任何用户交互的情况下,自动将应用程序带到前台通常违反Android和iOS关于应用程序行为的指导方针.

On iOS, this is simply not possible due to the strict nature of iOS's background limitations.

在Android上,通过在原生代码(Java/Kotlin)中创建活动并启动它在技术上是可能的,但如前所述, this goes against Android guidelines and such behavior could result in your app being removed from the Google Play Store.

您可以设置您的通知,以便在使用深度链接点击通知后导航到应用程序中的特定屏幕.你已经在用Linking.openURL(link)做类似的事情了,但这并不会强迫你的应用程序前台.只有当应用程序处于前台,或者用户与通知或指向您的应用程序的链接进行交互时,它才起作用.

Android相关问答推荐

懒惰列的滚动到项目不按预期工作'

为什么当我在装有Firebase的安卓系统中登录苹果时,收到的邮箱为空?

如何从Android 12的来电中获取电话号码?

我无法连接到信号机

没有打开历史记录的活动意向 Select 器完成调用活动

android回收器查看点击事件无响应

从不可组合回调打开可组合屏幕

在 Bash 脚本中使用 XMLLINT 解析 XML 单元测试文件,并将其放入数组中以表示成功和失败

如何在卡片视图右侧添加箭头

从我的 Android 应用程序发送到 Gin 时失败,但从 Postman 发送到 Gin 时成功

Android 构建失败:找不到 flexbox2.0.1.aar

SQLite Kotlin 问题 - 没有数据库

Android Jetpack Compose 电视焦点恢复

Android 设备断开连接后发送的 BLE 蓝牙数据

在 Jetpack Compose 中重用具有重复代码的列

自定义 Recyclerview [Android & Kotlin]

我不能在 jetpack Compose 中使用 TextField()(material 3)

我应该使用 Bluetooth Classic 还是 Bluetooth LE 与我的移动应用程序通信?

未使用的内容填充参数

模拟器在 android studio bumblebee 中不起作用