import 'dart:convert'; import 'dart:io'; import 'dart:ui'; import 'package:flutter/cupertino.dart'; import 'package:flutter/services.dart'; import 'package:fluwx_no_pay/fluwx_no_pay.dart'; import 'package:flutter/services.dart'; import 'package:jpush_flutter/jpush_flutter.dart'; import '../api/http.dart'; import '../model/user/user_info.dart'; import '../utils/event_bus_util.dart'; import '../utils/pageutils.dart'; import '../utils/user_util.dart'; import 'global.dart'; class PushUtil { static final JPush _jpush = JPush(); static init(BuildContext context) async { try { _jpush.addEventHandler( onReceiveNotification: (Map message) async { print("flutter onReceiveNotification: $message"); }, onOpenNotification: (Map message) async { var extra = message["extras"]["cn.jpush.android.EXTRA"]; extra = jsonDecode(extra); // //打开页面 // var type = extra["type"]; // // if (type == "sos") { // //SOS // NavigatorUtil.navigateToNextPagePush(SOSPage(title: "")); // } else if (type == "locationInvite") { // //请求定位 // eventBus.fire(LocationInviteEventBus()); // } }, onReceiveMessage: (Map message) async { var data = jsonDecode(message["message"]); print("flutter onReceiveMessage: $data"); var type = data["type"]; // if (type == "sos") { // //SOS // NavigatorUtil.navigateToNextPagePush(SOSPage(title: "")); // } else if (type == "locationInvite") { // eventBus.fire(LocationInviteEventBus()); // } }, onReceiveNotificationAuthorization: (Map message) async { print("flutter onReceiveNotificationAuthorization: $message"); }); } on PlatformException {} _jpush.setup( appKey: "987d3d50f209994fa522d001", //你自己应用的 AppKey channel: "developer-default", production: false, debug: true, ); _jpush.applyPushAuthority( NotificationSettingsIOS(sound: true, alert: true, badge: true)); // Platform messages may fail, so we use a try/catch PlatformException. _jpush.getRegistrationID().then((rid) { print("flutter get registration id : $rid"); UserApiUtil.uploadPushRegId(context, rid); }); //如果登录了就设置用户的uid bool isLogin = await UserUtil.isLogin(); if (isLogin) { UserInfo? user = await UserUtil.getUserInfo(); setAlias(user!.id!.toString()); } } ///添加alias static Future setAlias(String alias) async { try { await _jpush.setAlias(alias); } catch (e) {} } //删除alias static Future removeAlias() async { await _jpush.deleteAlias(); } }