iOS判断用户是否打开APP通知开关

最近在做关于APP的消息推送,做这个块消息推送有许多第三方插件,但目前项目用的react-native,所以推荐使用的是极光推送。

极光官网 这是官方的可以免费推送数据,当然你也可以使用postman等发送数据的工具。前提的看极光官方文档需要填写什么参数以及各式。

这里有个官方有个专门jpush的讨论社区 极光社区

当然也有gitHub上的列子 jpush

说了这么多开始说说开关的坑把。

APP推送,iOS和android有区别的

  • iOS大家都知道进入app的时候会自带系统级别的提醒你是否打开消息通知,在国内一般不存在这样的操作。
  • android是进入的时候就自动打开这个推送设置了。在国外如果你没提醒就自动打开这个推送设置,别人可以控告你侵权。

那么怎么去监听iOS系统级别开关消息通知呢?

  • 目前我只能想到你判断的时候需要去判断下iOS的系统,毕竟iOS系统版本不一样可能差异不同,这里我就从iOS8判断
if (IOS8) { //iOS8以上包含iOS8  
        if ([[UIApplication sharedApplication] currentUserNotificationSettings].types  == UIRemoteNotificationTypeNone) {  
    }  
 }else{ // ios7 一下      
         if ([[UIApplication sharedApplication] enabledRemoteNotificationTypes]  == UIRemoteNotificationTypeNone) {  
  }  
}  
复制代码

react-native 里面怎去判断是否是iOS还是android系统

improt Platform from 'react-native';
if(Platform.OS === 'android'){
}else{}
复制代码

js我也想去监听IOS用户是否点击允许接受通知系统级别的呢?

可以通过locaStorage来做,在react-native里面的Action里面设置一个Strorage来保存用户点击的状态通过回调函数Prmoise,异步来监听这个结果。
improt NativeModule from 'react-native';

const NEBcomponent = NativeModule.NEBcomponent;
getInfo = async () =>{
    return new Prmoise((resolve, reject) =>{
        NEBcomponent.isNotificationOpened(async (error, cakkback) => {
             if(cakkback){
            resolve(callback)//当用户点击允许的时候
             }else{
            reject(error);
             }
         });
    }
};
复制代码

春节将至。祝福大家新年快乐,情人节快乐。单身狗不要怕。程序员每天被杀死的脑细胞岂怕恩爱光~哈哈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值