【问题标题】:How to wake iOS device from suspended app state?如何从挂起的应用程序状态唤醒 iOS 设备?
【发布时间】:2021-05-26 11:13:20
【问题描述】:

我目前正在尝试创建一个 Flutter 应用程序,该应用程序可以在由另一个用户引起的特定(未知)时间振动用户。我针对 Android 版本的解决方案是使用 Firebase Cloud Messaging 启用推送通知,同时也未优化电池(针对应用程序)。当它是一个高优先级有效负载将处理应用程序打盹(空闲待机)时,我听到了推送通知,它在 android 上工作得很好。我最近在 iOS 版本上收到了推送通知,但通知似乎并没有唤醒设备(并允许它监听 Firebase Firestore 上的变化,以便它可以振动)。如果收到推送通知,一种解决方案是运行代码(振动 API),但我不确定如何执行此操作。有没有办法让应用程序从挂起的应用程序状态中唤醒,以便它可以检查 Firestore 上的更改?目前,当应用程序处于后台时它可以工作,但这还不够。

如果有帮助,这是我的通知负载:

const payload: admin.messaging.Message = {
          topic: newValue.lobbyCode,
          notification: {
            title: "Bzzzt!",
            body: "You've been buzzed!",
          },
          apns: {
            payload: {
              aps: {
                contentAvailable: true,
              },
            },
          },
          android: {
            priority: "high",
          },
        };

我目前正在使用contentAvailable: true,因为我听说它可以用来解决这个问题。我也在使用vibration.dart 插件,它似乎无法让我像在 Android 上那样完全控制振动。在 xcode 的功能上,我启用了 backgroundfetch、后台进程、远程消息传递和推送通知。但是,我没有针对这些添加任何特定于 info.plist 的内容,因为我不确定后台获取和进程是否是解决方案。

编辑:我了解到,当它之后打开另一个应用程序(直到您返回我的应用程序)时,它也会暂停/不工作。

【问题讨论】:

    标签: ios iphone firebase apple-push-notifications ios-app-suspended-state


    【解决方案1】:

    我所做的是将声音权限添加到iOS端并上传自定义CAF文件,该文件是一个空声音。

    【讨论】:

      猜你喜欢
      • 2016-06-22
      • 2017-08-06
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多