Mr.*_*bot 5 react-native react-native-android firebase-cloud-messaging react-native-firebase
我已成功将Firebase Cloud Messaging与react-native-firebase一起用于在Android设备之间发送和接收仅数据消息。
当设备收到消息时,如果该应用程序在后台或已被杀死,我想将该应用程序置于前台。我收到的通知console.log()在两种情况下都会显示,但是我在弄清楚如何最好地“唤醒”应用程序/将其置于前台时遇到了麻烦:
firebase.messaging().onMessage((message) => {
// Process your message as required
console.log('You got a message!', message);
});
}
Run Code Online (Sandbox Code Playgroud)
在两种情况下,上述代码均按预期执行。
有没有我可以查看的React Native软件包来帮助实现我想做的事情,还是应该考虑写一些代码Java?
提前致谢。
我正在尝试实现这样的目标,但不确定是否可以将这样的代码直接添加到我的React Native应用程序中?
我发现了这个使用HeadlessJS的包react-native-invoke-app。
HeadlessJS要求您在以下代码中使用此代码index.js:
AppRegistry.registerHeadlessTask('SomeTaskName', () => require('SomeTaskName'));
但是Firebase Cloud Messaging已经需要您在同一位置提供这一行代码,我想它的作用与以上相同:
AppRegistry.registerHeadlessTask('RNFirebaseBackgroundMessage', () => backgroundMessaging);
在react-native-invoke-app文档之后,我然后将调用放置在firebase.messaging().onMessage((message))回调中调用我的应用程序,如下所示:
firebase.messaging().onMessage((message) => {
// Process your message as required
invokeApp();
console.log('You got message!', message);
});
}
Run Code Online (Sandbox Code Playgroud)
但是,这并没有使我的应用程序成为前台。
再次感谢对此的任何帮助。
我现在将invokeApp()调用移到了Firebase backgroundNotificationListener函数中,这是一项无头的任务,似乎是正确的方法:
import invokeApp from 'react-native-invoke-app';
const incomingMessage = async (message) => {
// handle your message
invokeApp();
return Promise.resolve();
}
export default incomingMessage;
Run Code Online (Sandbox Code Playgroud)
但是,incomingMessage调用该函数时,该应用程序仍不会出现在前台。
我在github页面上提出了这个问题,react-native-invoke-app该页面上有我所面临问题的更多详细信息。
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |