From 177c32a9f429db44d454c96e2179eeed74235126 Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Thu, 13 Jun 2024 09:12:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=86=E7=A0=81=E3=80=81=E7=94=B5=E5=AD=90?= =?UTF-8?q?=E9=92=A5=E5=8C=99=E6=A8=A1=E5=9D=97=E6=96=B0=E5=A2=9E=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E6=89=8B=E6=9C=BA=E7=B3=BB=E7=BB=9F=E5=8F=91=E9=80=81?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E9=82=AE=E4=BB=B6=E3=80=81=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sendEmailNotification_logic.dart | 39 +++++++++++++++++++ .../sendEmailNotification_page.dart | 4 +- .../sendEmailNotification_state.dart | 13 ------- 3 files changed, 42 insertions(+), 14 deletions(-) diff --git a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_logic.dart b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_logic.dart index b050ced5..a39df1b9 100644 --- a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_logic.dart +++ b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_logic.dart @@ -1,9 +1,12 @@ +import 'dart:io'; + import 'package:get/get.dart'; import 'package:star_lock/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_entity.dart'; import 'package:star_lock/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_state.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/commonDataManage.dart'; +import 'package:url_launcher/url_launcher.dart'; class SendEmailNotificationLogic extends BaseGetXController { final SendEmailNotificationState state = SendEmailNotificationState(); @@ -50,4 +53,40 @@ class SendEmailNotificationLogic extends BaseGetXController { Get.back(); } } + + Future sendPersonalSMSOrEmail() async { + if (state.channelType.value == 1) { + //短信 + final String phoneNumber = state.getReceiver.value.isEmpty + ? state.receiverController.text + : state.getReceiver.value; + final String message = state.templateContentController.text; + final Uri smsUri = + Uri.parse('sms:$phoneNumber&body=${Uri.encodeComponent(message)}'); + + if (await canLaunchUrl(smsUri)) { + await launchUrl(smsUri); + } else { + throw 'Could not launch $smsUri'; + } + } else if (state.channelType.value == 2) { + //邮箱 + final Uri emailUri = Uri( + scheme: 'mailto', + path: state.getReceiver.value.isEmpty + ? state.receiverController.text + : state.getReceiver.value, + queryParameters: { + 'subject': state.currentNotifyItem.value.name ?? '', + 'body': state.templateContentController.text, + }, + ); + + if (await canLaunchUrl(emailUri)) { + await launchUrl(emailUri); + } else { + throw 'Could not launch $emailUri'; + } + } + } } diff --git a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart index c52597a3..e3c00f78 100755 --- a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart +++ b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_page.dart @@ -137,7 +137,9 @@ class _SendEmailNotificationPageState extends State { onClick: () { if (state.notifyTypeSelect.value == 1) { logic.keyNoticeSubmitRequest(); - } else {} + } else { + logic.sendPersonalSMSOrEmail(); + } }), ], ), diff --git a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_state.dart b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_state.dart index 954be4dc..c8ee4630 100644 --- a/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_state.dart +++ b/lib/main/lockDetail/electronicKey/sendEmailNotification/sendEmailNotification_state.dart @@ -15,19 +15,6 @@ class SendEmailNotificationState { if (Get.arguments['channelType'] != null) { channelType.value = Get.arguments['channelType']; updateNotifyTypeText(); - // if (channelType.value == 1) { - // if (notifyTypeSelect.value == 1) { - // getNotifyTypeText.value = '系统短信'; - // } else { - // getNotifyTypeText.value = '个人短信'; - // } - // } else { - // if (notifyTypeSelect.value == 1) { - // getNotifyTypeText.value = '系统邮件'; - // } else { - // getNotifyTypeText.value = '个人邮件'; - // } - // } } }