【问题标题】:Enable/Disable firebase push notifications in react native app在反应本机应用程序中启用/禁用 Firebase 推送通知
【发布时间】:2020-08-05 18:52:20
【问题描述】:

我有一个带有设置屏幕的反应应用程序,它允许禁用所有类型的通知。在react native documentation 中,如何实现这一点并不完全清楚。我可以在他注册时请求用户许可,但是如何从设置屏幕禁用此许可,这样他就不会收到任何通知,但用户可以在以后再次启用它们。

我可以使用主题来做到这一点,但这非常有限。我想使用来自 Firebase 控制台的受众来定位。 任何帮助表示赞赏。

【问题讨论】:

  • 将此作为标志保存在用户的个人资料中,如果用户已将其关闭,则不要发送推送

标签: android ios firebase react-native push-notification


【解决方案1】:

你可以做这样的事情。您需要检查平台并分别进行配置。

要让 Android 检查通知状态,您需要 react-native-permissions library

import {checkNotifications} from 'react-native-permissions';

根据notification,您可以启用和禁用该按钮。

async checkNotificationStatus(){
    if(Platform.OS === 'ios'){
        const authStatus = await messaging().hasPermission();
        if(authStatus === messaging.AuthorizationStatus.AUTHORIZED) {
            this.setState({
                notification: true
            })
        }else{
            this.setState({
                notification: false
            })
        }
    }else{
        checkNotifications().then(({status}) => {
            if(status === 'granted'){
                this.setState({
                    notification: true
                })
            }else{
                this.setState({
                    notification: false
                })
            }
        });
    }
}

单击按钮时启用和禁用。您可以简单地将用户导航到系统设置

   async toggleNotification(){
        if(Platform.OS === 'ios'){
            const authStatus = await messaging().hasPermission();
            if (authStatus === messaging.AuthorizationStatus.NOT_DETERMINED) {
                const authorizationStatus = await messaging().requestPermission();
                if (authorizationStatus === messaging.AuthorizationStatus.AUTHORIZED) {
                    this.setState({
                        notification: true
                    })
                }
            } else{
                Linking.openURL('app-settings://')
            }
        }else{
            Linking.openSettings();
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    • 2020-01-31
    • 2023-04-06
    • 1970-01-01
    • 2012-05-16
    • 2012-11-28
    • 1970-01-01
    相关资源
    最近更新 更多