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