qua*_*zar 5 android push-notification ios firebase react-native
我有一个带有设置屏幕的 React 应用程序,可以禁用所有类型的通知。如何实现这一点在react native 文档中并不完全清楚。我可以在他注册时请求用户许可,但如何从设置屏幕禁用此权限,以便他不会收到任何通知,但用户可以在将来再次启用它们。
我可以使用主题来做到这一点,但这非常有限。我想使用来自 firebase 控制台的受众进行定位。任何帮助表示赞赏。
你可以做这样的事情。您需要检查平台并分别进行配置。
对于 Android 要检查通知状态,您需要react-native-permissions 库。
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
})
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
单击按钮时启用和禁用。您只需将用户导航到系统设置即可
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();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3319 次 |
| 最近记录: |