我读过
但这不是react-native-firebase的解决方案。
我正在使用react-native-firebase
处理通知。在前台,一切正常。我陷入了背景状态。
我正在研究一个聊天项目并进行一对一通话功能。当客户有电话时,我会将数据通知推送给客户。在iOS中,当客户端收到通知时,我使用CallKit,并且运行良好。但是在Android中,我有一个问题: 我可以显示ConnectionService UI进行呼叫,但无法连接到我的Web套接字服务器,因为它在Headless JS服务上运行。因此,我尝试自动打开该应用程序。我想将通话屏幕显示为Skype,并接受/拒绝通话。 (有电话时,Skype可以启动该应用程序)
成功的步骤摘要:
卡在这里:
TL; DR-如何从Headless JS Service启动/运行/打开Android应用程序?
我深入研究react-native-firebase,它在onMessageReceived
上捕获了通知,并将通知消息发送到Headless JS Service。
// If the app is in the background we send it to the Headless JS Service
Intent headlessIntent = new Intent(
this.getApplicationContext(),
RNFirebaseBackgroundMessagingService.class
);
headlessIntent.putExtra("message", message);
this
.getApplicationContext()
.startService(headlessIntent);
HeadlessJsTaskService.acquireWakeLockNow(this.getApplicationContext());
任何帮助将不胜感激
答案 0 :(得分:0)
此库有助于从后台状态打开应用。 React Native Launch Application
如果您的应用从后台状态退出
您必须像这样在index.js中注册registerHeadlessTask
AppRegistry.registerHeadlessTask(
'ReactNativeFirebaseMessagingHeadlessTask',
() => notificationActionHandler,
);
并在notificationActionHandler函数中调用库函数来打开应用
如果您的应用程序处于后台运行状态,则可以订阅
messaging().setBackgroundMessageHandler(remoteMessage => {
console.log('setBackgroundMessageHandler', remoteMessage.data);
})