gpt4 book ai didi

android - 电容器/ ionic : Handling push notification in background or when app was killed

转载 作者:行者123 更新时间:2023-12-03 13:27:46 27 4
gpt4 key购买 nike

大家,早安,
我已经好几个小时找不到解决方案了。
我使用“PushNotifications”电容器插件 (https://capacitor.ionicframework.com/docs/apis/push-notifications/) 来收听来自 firebase 的推送通知(通知和数据类型),通知的收听非常好,即使在应用程序被杀死的情况下,一切都按预期运行或在后台。
问题如下:
我想在收到通知时打开应用程序,如果它在后台或者它已被杀死。

  • 如果应用程序在 中时收到通知前景 ,我可以使用运行自定义代码addListener(eventName: "pushNotificationReceived", callback)无论如何我都没有问题,因为该应用程序已打开。
  • 如果应用程序在 中时收到通知背景 ,我可以强制应用程序保持 backgroundMode 处于 Activity 状态(https://ionicframework.com/docs/native/background-mode)
    并在收到通知后将应用程序置于前台。 (虽然我不太喜欢它,因为它很耗电)
  • 如果是应用程序 被杀 ,我还没有找到问题的解决方案。

  • 似乎没有办法 Hook 自定义代码,以便在后台收到推送通知或应用程序终止时能够运行,你有没有遇到过这个问题?
    谢谢!

    最佳答案

    我的解决方案是添加: FCM_PLUGIN_ACTIVITY 采取行动AndroidManifest.xml

            <activity
    ...
    android:name="com.appname.MainActivity"
    ...>

    ...
    ...
    ...

    <intent-filter>
    <action android:name="FCM_PLUGIN_ACTIVITY" />
    <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    </activity>
    此外,在服务器上,您应该在推送通知对象中包含操作:
      const pushNotification = {
    data: {
    ...
    },
    notification: {
    body: body,
    title: title,
    click_action: 'FCM_PLUGIN_ACTIVITY',
    },
    };
    在你处理的 ionic 项目中 pushNotificationActionPerformed 如下所示并导航到所需的路线:
      PushNotifications.addListener('pushNotificationActionPerformed',
    (notification: PushNotificationActionPerformed) => {
    console.log('Push action performed: ' + JSON.stringify(notification));
    }
    );
    要在应用程序打开时处理接收推送通知,您应该处理 pushNotificationReceived 如果需要,请自己举杯。
    // the app is open, show your own notification if needed
    PushNotifications.addListener('pushNotificationReceived',
    (notification: PushNotification) => {
    console.log('push notification received: ' + JSON.stringify(notification));
    }
    );

    关于android - 电容器/ ionic : Handling push notification in background or when app was killed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62533419/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com