@baukit/notifications-expo
这个 expo-notifications 执行情况 @baukit/notifications-core 平台端口。 这个
调度、列表和取消仅带有其所有者标记的通知,它从未
电话 cancelAllScheduledNotificationsAsync。 。 。 .
import { resolveNotificationOccurrences } from '@baukit/notifications-core';
import {
createExpoOwnedNotificationScheduler,
IOS_PENDING_NOTIFICATION_LIMIT,
} from '@baukit/notifications-expo';
import * as Notifications from 'expo-notifications';
const scheduler = createExpoOwnedNotificationScheduler(Notifications, {
pendingLimit: IOS_PENDING_NOTIFICATION_LIMIT,
});
const { desired } = resolveNotificationOccurrences({ occurrences, timeZone, gap, fold, clock, horizonDays });
const outcome = await scheduler.replaceOwned(
{ namespace: 'reminders' },
desired.map((entry) => ({
...entry,
content: { content: { title: entry.title, body: entry.body }, channelId: 'reminders' },
})),
);
- 每个应用程序创建一个调度器并共享. 一个命名空间的替换一次运行一次 那个例子.
- 每个请求都得到标识符
baukit:<namespace>:<logicalId>和日期触发器 即时计划.channelId是可选的,只有Android. - 适配器在
baukitNotification键入content.data,旁边 产品本身的数据。 已经使用该密钥拒绝的产品数据NotificationPlanError('reserved_data_key')。 。 。 . - 许可数为:
granted真实或iOS状态被授权,临时, 或者麻风.undetermined算作没有批准,所以产品先问. IOS_PENDING_NOTIFICATION_LIMIT为64. 限量计算设备上每个待处理的请求,所以 当其他特性的日程安排也通过一个更低的数字.- 结果报告列出、取消、许可、时间表和通过代码和逻辑ID限制失败, 从来没有通知内容.
模块通过,包只从 expo-notifications,所以请
包本身在节点和测试中加载。 测试运行 核心符合套件对
模拟模块.
边界
软件包不请求权限,创建Android频道,设置通知处理器,或者 选择副本。 它不支持重复触发;计划一个滚动地平线,并在 应用程序打开或计划更改 .