gpt4 book ai didi

android - 世博会:如果应用程序在前台打开,则不显示通知

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:15 25 4
gpt4 key购买 nike

我正在使用 Expo 开发一个 react 原生的消息传递应用程序。每次用户收到一条新消息时,我都会从我的服务器发送一条通知。

如果应用当前打开,有什么方法可以不显示通知?

现在我在收到通知后立即使用它:

Notifications.dismissNotificationAsync(notification.notificationId);

但是有 0.5 秒的延迟,通知有时间出现在托盘中并在被关闭之前触发声音。我不想显示它。

最佳答案

在应用程序运行时收到通知时,使用setNotificationHandler,您可以设置一个回调来决定是否应向用户显示通知。

Notifications.setNotificationHandler({
handleNotification: async () => ({
shouldShowAlert: true,
shouldPlaySound: false,
shouldSetBadge: false,
}),
});

当收到通知时,handleNotification 被调用,传入的通知作为参数。该函数应在 3 秒内响应一个行为对象,否则通知将被丢弃。如果通知处理成功,将使用通知的标识符调用 handleSuccess,否则(或超时)将调用 handleError

未设置处理程序或未及时响应时的默认行为是不显示通知。

如果您不使用 setNotificaitonHandler,当应用程序处于前台时将不会显示新通知。

因此,您可以在应用初始化时简单地将 setNotificationHandler 设置为 null


Notifications.setNotificationHandler(null);

See Documentaition

关于android - 世博会:如果应用程序在前台打开,则不显示通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56689701/

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