parent
9084987b2b
commit
a0df048fc4
@ -0,0 +1,59 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:velocity_x/velocity_x.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
|
||||
class JpushMessageParse {
|
||||
final Map<String, dynamic> message;
|
||||
String subTitle;
|
||||
String type = '0';
|
||||
JpushMessageParse(Map<String, dynamic> rawMessage)
|
||||
: message = Map<String, dynamic>.from(rawMessage);
|
||||
|
||||
Future shot() async {
|
||||
subTitle = message['alert'];
|
||||
Map<dynamic, dynamic> rawExtras = message['extras'];
|
||||
String androidExtra = rawExtras['cn.jpush.android.EXTRA'];
|
||||
if (androidExtra == null) {
|
||||
return;
|
||||
} else {
|
||||
Map<String, dynamic> _innerMap = jsonDecode(androidExtra);
|
||||
type = _innerMap['type'] ?? '0';
|
||||
switch (type) {
|
||||
case '1':
|
||||
await fireAlert(subTitle);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Future fireAlert(String subTitle) async {
|
||||
await Get.dialog(
|
||||
CupertinoAlertDialog(
|
||||
title: Text('发现火灾!请立刻组织疏散人群!'),
|
||||
content: Column(
|
||||
children: [
|
||||
Text(subTitle),
|
||||
10.w.heightBox,
|
||||
Icon(
|
||||
CupertinoIcons.bell_fill,
|
||||
color: Colors.red,
|
||||
size: 48.w,
|
||||
),
|
||||
],
|
||||
),
|
||||
actions: [
|
||||
CupertinoDialogAction(
|
||||
child: Text('确认'),
|
||||
onPressed: () => Get.back(),
|
||||
),
|
||||
],
|
||||
),
|
||||
barrierDismissible: false,
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue