From f092e392700f68cdbfc545c9801f530d19fd39fa Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 03 十二月 2021 19:59:23 +0800 Subject: [PATCH] 功能完善 --- lib/utils/push_util.dart | 27 +++++++++++++++++++++++---- 1 files changed, 23 insertions(+), 4 deletions(-) diff --git a/lib/utils/push_util.dart b/lib/utils/push_util.dart index 17d6967..d111392 100644 --- a/lib/utils/push_util.dart +++ b/lib/utils/push_util.dart @@ -1,3 +1,4 @@ +import 'dart:convert'; import 'dart:io'; import 'dart:ui'; @@ -8,19 +9,36 @@ import 'package:flutter_baidu_mapapi_base/src/map/bmf_types.dart'; import 'package:flutter/services.dart'; import 'package:jpush_flutter/jpush_flutter.dart'; +import 'package:locations/api/http.dart'; import 'package:locations/model/user/user_info.dart'; +import 'package:locations/ui/main/location.dart'; +import 'package:locations/ui/sos/sos.dart'; +import 'package:locations/utils/pageutils.dart'; import 'package:locations/utils/user_util.dart'; -class PushUtil { - static JPush _jpush = JPush(); +import 'global.dart'; - static init() async { +class PushUtil { + static final JPush _jpush = JPush(); + + static init(BuildContext context) async { try { _jpush.addEventHandler( onReceiveNotification: (Map<String, dynamic> message) async { print("flutter onReceiveNotification: $message"); }, onOpenNotification: (Map<String, dynamic> message) async { - print("flutter onOpenNotification: $message"); + 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 == "requestLocation") { + //璇锋眰瀹氫綅 + LocationPage.getLocationInvite(navigatorKey.currentState!.context); + } }, onReceiveMessage: (Map<String, dynamic> message) async { print("flutter onReceiveMessage: ${message["message"]}"); }, onReceiveNotificationAuthorization: @@ -41,6 +59,7 @@ // 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); }); //濡傛灉鐧诲綍浜嗗氨璁剧疆鐢ㄦ埛鐨剈id -- Gitblit v1.8.0