Android关于极光推送屏蔽掉默认推送,自己写本地推送处理

27 篇文章 1 订阅
6 篇文章 0 订阅

前沿

集成极光推送大概有七八回了吧,本以为轻车熟路的,结果你永远干不过PM的脑洞。
我们项目是要做国际化的,也就是多语言适配,但是测试推送的时候发现一个问题就是如果你转账的手机是什么语言,那你收款手机收到推送的语言就是什么,产品不干了说:收到推送应该和当前APP内部语言保持一致。可是后台发的推送就这个语言呀,结果开始互相甩锅了。。。。。

解决方案

本地负责的态度决定自己本地做处理吧,自己的思路是首先我自己写本地的notification本地写好推送文案:

    //自定义通知栏
    private void receivingNotification(Context context, Bundle bundle) {
        NotificationManager manager = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);
        String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
        String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
        // 使用notification
        // 使用广播或者通知进行内容的显示
        NotificationCompat.Builder builder = new NotificationCompat.Builder(
                context);
        builder.setContentText("xxxxx").setSmallIcon(R.mipmap.icon).setContentTitle("xxxxx");
        builder.setDefaults(Notification.DEFAULT_SOUND);
        manager.notify(1,builder.build());
    }

然后放入自己重写的onReceive里面
在这里插入图片描述
自己试着用极光后台发送一下广播发现:可以是可以但是收到两个,一个是极光发的一个是我本地发的,这样肯定不行。并且我debug发现只要走onReceive就一定收到极光的推送,挖槽这样感觉没法处理了啊!但是我没有放弃在极光官网上看到:
在这里插入图片描述是的可以换个思路,就是禁止掉极光的推送,在官网也看到了只要让后台设置alert为空把内容放在extra里面给我们这样就不会收到推送,但onreceive是执行的,接收到extra里面的值后,我们本地广播去处理逻辑,把语言翻译成我手机对应的语言这样完美解决。

其实我挺无语的我感觉这种不应该是我们个tag或者是alias,或者根据地址围栏让后台去处理嘛。
还有就是Android和iOS的推送机制是不一样的iOS好像可以改推送的内容,但是我们只可以设置推送的样式。

极光链接:官方文档

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值