当前位置: 首页 > 知识库问答 >
问题:

在反应原生应用程序中启用/禁用Firebase推送通知

丁嘉庆
2023-03-14

我有一个带有设置屏幕的反应应用程序,它允许禁用所有类型的通知。如何实现这一点在反应原生留档中并不完全清楚。我可以在他注册时询问用户权限,但如何从设置屏幕禁用此权限,以便他不会收到任何通知,但用户可以在未来再次启用它们。

我可以用主题来做这件事,但这相当有限。我想使用firebase控制台的目标受众。感谢您的帮助。

共有1个答案

云景焕
2023-03-14

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

要让Android检查通知状态,您需要react native permissionslibrary。

从“反应本机权限”导入{check通知};

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

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();
        }
    }
 类似资料:
  • 问题内容: 我有一个iPhone应用程序,可以接收推送通知。目前,我可以通过转到iPhone设置/通知来禁用我的应用程序的推送通知。 但是我想在我的应用程序内添加一个开关或按钮来启用或禁用推送通知。 之所以能做到,是因为我在Foursqure iPhone应用程序中看到了它。他们在设置呼叫通知设置中有一节,用户可以为该应用启用或禁用其他类型的通知。 我四处寻找可以找到合适的解决方案,但仍然找不到方

  • 当应用程序在后台时,如何更新包含数据负载的Firebase推送通知?有没有办法在通知中指定通知id给Firebase API? 完整的项目在github https://github.com/akshatashan/FireBaseCloudMessagingDemo中

  • 我想用Xamarin格式的C#创建一个基于文本的Android游戏。 在故事中,我想设置角色任务,这需要一些时间,例如“我去挖这个洞,完成后给你打电话。” 如何将通知设置为在设置的时间之后显示?例如,上述声明可能需要10分钟,然后用户收到继续游戏的通知? 我一周前才开始做C#,所以如果这是noobish,或者已经被问到了,我道歉。我到处都找过,但有几种类型的通知,当我试图理解它时,似乎我在读法语。

  • 我想写一个小脚本,告诉Firebase消息推送,如果满足一定条件。如何使用谷歌应用程序脚本从Firebase发送消息推送?

  • 我在playstore有一个11K的应用程序。该应用程序是本地Java的。我做了一个react原生应用程序与相同的包名,并更改了jks密钥到密钥存储文件和更改了版本代码。我正在使用的应用程序存储jks文件,我得到这个错误,我知道通过卸载解决,但我不能告诉用户卸载,有没有其他方式执行失败的任务':app:installrelease'。 com.android.builder.testing.api

  • 我想在我的android react本机应用程序的图像标签中通过URL显示一个简单的gif,但当我启动它时,不会显示任何图像。文档中提供的代码仅适用于iOS,不适用于android: 这里有一个类似的问题,但正如前面所说,这只适用于iOS:如何在React Native中显示动画gif 关于此提交,它应该可以工作:https://github.com/facebook/react-native/c