gpt4 book ai didi

Flutter 本地通知 int id 参数

转载 作者:行者123 更新时间:2023-12-04 15:21:13 24 4
gpt4 key购买 nike

我正在使用 flutter 本地通知插件来通知用户事件开始。
所有事件都存储在带有日期和时间的 firebase 中。
如果用户将事件添加到他的日程表中,他会收到通知。
我的问题是本地通知插件需要一个 国际在参数和 firebase 中,我的 id 类型为 String (该事件与另一个生成字符串 ID 的 web 应用程序一起添加到 firebase 中)。
那么有没有一种方法可以使通知与字符串 ID 一起工作?
这是数据库:
enter image description here

   lass DetailScreen extends StatefulWidget {
final String id;
DetailScreen(this.id);

@override
_DetailScreenState createState() => _DetailScreenState();
}

class _DetailScreenState extends State<DetailScreen> {
String firstHalf;

String secondHalf;

bool flag = true;

int selectedValue;

bool isScheduled = false;

bool isLoading = true;

initState() {
selectedValue = 0;
Future.delayed(Duration(seconds: 0), () async {
await getStatus();
final response = await flutterLocalNotificationsPlugin
.getNotificationAppLaunchDetails();
if (response.didNotificationLaunchApp) {
await Provider.of<ShowsModel>(context, listen: false).getShows();
await Provider.of<ChannelModel>(context, listen: false).getChannels();
}
setState(() {
isLoading = false;
});
});
super.initState();
}

showNotification(String title, DateTime showTime) async {
var android = AndroidNotificationDetails(
'channel id', 'channel name', 'channel description',
enableVibration: true,
playSound: true,
importance: Importance.High,
priority: Priority.High);
var iOS = IOSNotificationDetails();
var platform = NotificationDetails(android, iOS);
new DateTime.now().add(Duration(seconds: 10));
await flutterLocalNotificationsPlugin.schedule(
int.parse(widget.id),
title,
'The show is about to start in 15 minutes',
showTime.subtract(Duration(minutes: 15)),
platform,
payload: widget.id);
}

最佳答案

不幸的是,我不知道 iOS 的通知实现是什么样的,但 Android 实现与 int 一起工作。我认为没有办法解决它。
您可以做的只是使用 hashcode 函数为您的 String id 生成一个 int 哈希:

String eventID = "asdnasjdnaskdnbaihbd2in1en213123";
int notificationId = eventID.hashCode;
哈希码的文档说:
  /**
* Returns a hash code derived from the code units of the string.
*
* This is compatible with [operator ==]. Strings with the same sequence
* of code units have the same hash code.
*/
int get hashCode;
意味着只要您的 eventIds 是唯一的,这应该可以正常工作。

关于Flutter 本地通知 int id 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63277849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com