u_push_plugin 0.0.4 copy "u_push_plugin: ^0.0.4" to clipboard
u_push_plugin: ^0.0.4 copied to clipboard

outdated

友盟推送Plugin

u_push_plugin #

友盟推送Plugin

备注(插件当前处于开发阶段不开放使用,仅供测试) #

Getting Started #

Android端 #

注意 由于UmengNotifyClickActivity原因,gradle配置使用 api 'com.umeng.umsdk:push:6.1.0' api 'com.umeng.umsdk:agoo-accs:3.3.8.8-open-fix2' 如导致依赖冲突 请在主项目gradle中进行依赖配置

 - 首先声明自定义 Application  
class RApplication :FlutterApplication(){
    override fun onCreate() {
        super.onCreate()
        //注册友盟推送
        PushManager.instance.initUPush(this,"YourKey","YourSecret")
        ///三方渠道注册 如果没有对应平台不实现对应方法就好
        OtherPlatformBuilder.Builder(this)
                       .initHuawei() //注册华为
                       .initMeiZu("", "") //注册魅族
                       .initOppo("", "") //注册oppo
                       .initVivo() //注册vivo
                       .initXiaoMi("", "") //注册小米
                       .build().register() //注册动作
    }
}

具体清单文件配置三方配置请查看官方文档

- 三方渠道接收消息用(不使用不实现就好)
class NotifyActivity : UmengNotifyClickActivity() {
    var message = ""
    override fun onMessage(p0: Intent?) {
        //接收到代码,然后做你想做的
        //由于FlutterActivity所以导致无法在main中进行接收,曲线救国,如果有更好的方法也希望您能提供哦
        //此处我是将activity设置为全透明,并在此处获取数据进行跳转
        //以下代码仅供参考
        val body = p0?.getStringExtra("body")
        var intent = Intent()
        val data = Gson().fromJson<PushData>(body,PushData::class.java)
        intent.putExtra("message",data.extra.message)
        intent.putExtra("type",data.extra.type)
        intent.setClass(this,MainActivity::class.java)
        startActivity(intent)
        finish()
    }
}
- activity中重写onNewIntent方法
    override fun onNewIntent(intent: Intent) {
            super.onNewIntent(intent)
            MessageManager.instance.setIntentJson(intent)
        }

flutter 端 #

- 开启友盟消息监听回调
    UPushPlugin.initMessageListener();
- 开启的登陆完成监听(由于登录注册是异步的,防止主动获取时无法获取到)
   UPushPlugin.initRegisterListener((value) {
         deviceToken = value.message;
         setState(() {});
       });
- 消息监听
   UPushPlugin.initMessageResultListener((value) {
         MessageData(value);
         setState(() {
           message = MessageData(value).message;
         });
       });
- 后台进入,冷启动获取数据
   UPushPlugin.getCacheMessage().then((value) {
         if(value.isNotEmpty){
           setState(() {
             message = MessageData(value).message;
           });
         }
       });
- 主动获取deviceToken
   deviceToken = await UPushPlugin.getDeviceToken();
- 回传信息数据转dart
   class MessageData extends BaseMessageData{
     String message;
     int type;
     MessageData(Map<dynamic, dynamic> mapData) : super(mapData);
   
     @override
     void createDataByMap(Map<dynamic, dynamic> mapData) {
       message = mapData["message"];
       type = int.parse(mapData["type"]) ;
     }
   }
0
likes
0
pub points
0%
popularity

Publisher

unverified uploader

友盟推送Plugin

Homepage

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on u_push_plugin