14 个版本
0.4.1 | 2024 年 8 月 11 日 |
---|---|
0.3.5 | 2024 年 6 月 17 日 |
0.3.1 | 2024 年 3 月 31 日 |
0.1.0 |
|
#456 in Web 编程
232 每月下载次数
53KB
1K SLoC
Rust 版本的 Expo 推送通知客户端
这是官方的 Rust 版本 Expo 推送通知客户端。
客户端(ReactNative with Expo)
您需要从 Expo SDK 获取 Expo 推送令牌并将其发送到 Expo 服务器。有关更多详细信息,请参阅 文档。
服务器(Rust)
安装
cargo add expo_push_notification_client
使用方法
use expo_push_notification_client::{Expo, ExpoClientOptions, ExpoPushMessage};
// Initialize Expo client
let expo = Expo::new(ExpoClientOptions {
access_token: Some(access_token),
});
// Define Expo Push Tokens to send notifications to
let expo_push_tokens = ["ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]"];
// Build Expo Push Message with specified tokens
let expo_push_message = ExpoPushMessage::builder(expo_push_tokens).build()?;
// Send push notifications using Expo client
let tickets = expo.send_push_notifications(expo_push_message).await;
// Extract push notification IDs from tickets
let mut expo_push_ids = vec![];
for ticket in tickets {
match ticket {
ExpoPushTicket::Ok(ticket) => {
expo_push_ids.push(ticket.id);
}
ExpoPushTicket::Error(e) => {
// Handle error
}
}
}
// Retrieve push notification receipts using Expo client
expo.get_push_notification_receipts(expo_push_ids).await;
此外,您还可以通过添加更多选项来自定义 ExpoPushMessage。有关更多详细信息,请参阅 文档。
// Build Expo Push Message with detailed configurations
let expo_push_message = ExpoPushMessage::builder(["ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]"])
.body("body")
.data(&[("data".to_string())])?
.ttl(100)
.expiration(100)
.priority("high")
.subtitle("subtitle")
.sound("default")
.badge(1)
.channel_id("channel_id")
.category_id("category_id")
.mutable_content(true)
.title("title")
.build()?;
依赖关系
~9–21MB
~311K SLoC