import 'dart:convert'; import 'dart:io'; import 'package:flutter/material.dart'; import 'package:mobpush_plugin/mobpush_custom_message.dart'; import 'package:mobpush_plugin/mobpush_notify_message.dart'; import 'package:mobpush_plugin/mobpush_plugin.dart'; import 'package:zhiying_base_widget/utils/contants.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; class MobPushUtil { //接受推送监听 static addPushReceiver() { void _onEventPush(Object event) { print('>>>>>>>>>>>>>>>>>>>>>>>>>>>我的onEvent:' + event.toString()); Logger.log(event.toString()); BuildContext context = navigatorKey.currentState.overlay.context; Map eventMap = json.decode(event); Map result = eventMap['result']; int action = eventMap['action']; switch (action) { case 0: MobPushCustomMessage message = new MobPushCustomMessage.fromJson(result); showDialog( context: context, child: AlertDialog( content: Text(message.content), actions: [ FlatButton( onPressed: () { Navigator.pop(context); }, child: Text("确定"), ) ], )); break; //接受到推送弹出通知事件 case 1: try { MobPushNotifyMessage message = new MobPushNotifyMessage.fromJson(result); Map map = message.extrasMap; if(map.containsKey("skip_identifier")){ //公共跳转 RouterUtil.route(SkipModel.fromJson(map), map, context); } } catch (e) { Logger.log(e); RouterUtil.goBackHomePage(context); } print("类型1: " + result.toString()); break; //点击弹窗事件 case 2: try { MobPushNotifyMessage message = new MobPushNotifyMessage.fromJson(result); Map map = message.extrasMap; //公共跳转 RouterUtil.route(SkipModel.fromJson(map), map, context); print("类型2: " + map.toString()); } catch (e) { Logger.log(e); RouterUtil.goBackHomePage(context); } break; } } void _onErrorPush(Object event) { print('>>>>>>>>>>>>>>>>>>>>>>>>>>>onError:' + event.toString()); } MobpushPlugin.addPushReceiver(_onEventPush, _onErrorPush); } //设置别名 static setAlias(String alias) { MobpushPlugin.setAlias(alias).then((Map aliasMap) { Logger.log(aliasMap); String res = aliasMap['res']; String error = aliasMap['error']; String errorCode = aliasMap['errorCode']; print(">>>>>>>>>>>>>>>>>>>>>>>>>>> setAlias -> res: $res error: $error errorCode: $errorCode"); }); } //获取别名 static getAlias() { MobpushPlugin.getAlias().then((Map aliasMap) { Logger.log(aliasMap); String res = aliasMap['res']; String error = aliasMap['error']; print( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> getAlias -> res: $res error: $error>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); }); } //删除别名 static deleteAlias() { MobpushPlugin.deleteAlias().then((Map aliasMap) { Logger.log(aliasMap); String res = aliasMap['res']; String error = aliasMap['error']; print(">>>>>>>>>>>>>>>>>>>>>>>>>>> deleteAlias -> res: $res error: $error"); }); } //设置可以推送 static setCanPush() { if (Platform.isIOS) { //设置远程推送环境,向用户授权(仅 iOS) MobpushPlugin.setCustomNotification(); // 开发环境 false, 线上环境 true MobpushPlugin.setAPNsForProduction(true); } //上传隐私协议许可 MobpushPlugin.updatePrivacyPermissionStatus(true); } //停止推送 static stopPush() { MobpushPlugin.stopPush(); } //(6)重新打开推送服务 static restartPush() { MobpushPlugin.restartPush(); } }