android 推送多平台,Android多平台推送

1、概述

android push集成了小米,华为,魅族,vivo和oppo五大厂家的push sdk,方便Android各项目集成push。

2、Push类图

f95ab25c1be66dcae2c1010ae59c52c8.png

3、Push时序图

300be21a245d15bfee7bdcca72674a55.png

4、使用姿势

配置global.gradle和build.gradle

在project的build增加配置

allprojects {

repositories {

maven {url "http://developer.huawei.com/repo"}

maven{url 'https://raw.githubusercontent.com/fomin-zhu/repo/master'}

}

}

在module的build增加配置

dependencies {

implementation 'com.fomin.push:push:1.0.0'

}

配置AndroidManifest

注意:appId如果是数字,请在前面加上"\ ",避免读取数据错误

Application初始化

override fun onCreate() {

if (!Systems.isInMainProcess(application)) return

super.onCreate()

pushCenter = PushFactory.init(application)

}

companion object {

fun pushCenter(): AbsPushCenter? {

return pushCenter

}

fun setPushCenter(pushCenter: AbsPushCenter) {

this.pushCenter = pushCenter

}

}

自定义BroadcastReceiver,类名和包路径固定,类名为PushReceiver,包路径$applicationId+".push.PushReceiver",需要兼容8.0系统

class PushReceiver : BasePushReceiver() {

/**

* 获取注册推送返回的token或regId

*/

override fun onReceiveToken(context: Context?, msg: PushMsg?) {

Log.d(PushUtil.TAG, "call onReceiveToken(): context=[$context], message=[$msg]")

}

/**

* 获取给服务器发送命令的结果,结果封装在MiPushCommandMessage类中。

*/

override fun onCommandResult(context: Context?, command: PushCommandMsg?) {

Log.d(PushUtil.TAG, "call onCommandResult(): context=[$context], message=[$command]")

}

/**

* 接收服务器推送的通知消息,用户点击后触发,消息封装在 MiPushMessage类中。

*/

override fun onNotificationMessageClicked(context: Context?, msg: PushMsg?) {

Log.d(PushUtil.TAG, " call onNotificationMessageClicked(): context=[$context], miPushMessage=[$msg]")

}

override fun onReceivePassThroughMessage(context: Context?, msg: PushMsg?) {

Log.d(PushUtil.TAG, " call onReceivePassThroughMessage(): context=[$context], msg=[$msg]")

}

/**

* 接收服务器推送的通知消息,消息到达客户端时触发,还可以接受应用在前台时不弹出通知的通知消息,消息封装在 MiPushMessage类中。

* 在MIUI上,只有应用处于启动状态,或者自启动白名单中,才可以通过此方法接受到该消息。

*/

override fun onNotificationMessageArrived(context: Context?, msg: PushMsg?) {

Log.d(PushUtil.TAG, " call onNotificationMessageArrived(): context=[$context], miPushMessage=[$msg]")

}

}

混淆

-keep class com.huawei.** {*;}

-keep class com.huaying.seal.common.mipush.PushReceiver{*;}

-dontwarn com.xiaomi.push.**

-dontwarn com.vivo.push.**

-keep class com.vivo.push.**{*; }

-keep class com.meizu.cloud.**{*;}

-keep class com.coloros.mcssdk.**{*;}

github资源:https://github.com/fomin-zhu/push

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值