将 expo-notifications 从 57.x 升级到 58.x
根据 TypeScript 类型自动比较 expo-notifications 57.0.23 与 58.1.4 的公开 API。签名变化表示可能存在不兼容变更,并非确定结论。
概要
| 已删除的导入路径 | 0 |
|---|---|
| 已删除的导出 | 0 |
| 已修改的签名 | 7 |
| 已删除的类或接口成员 | 0 |
| 已修改的类或接口成员 | 0 |
| 新增弃用 | 0 |
| 要求变化(engines、peer 依赖) | 0 |
| 新增导出 | 3 |
已删除的导出
未发现。
已修改的签名
| export | 之前 | 之后 |
|---|---|---|
expo-notifications · DateTriggerInput | { type: SchedulableTriggerInputTypes.DATE; date: number | Date; channelId?: string | undefined; } | { type: SchedulableTriggerInputTypes.DATE; date: number | Date; channelId?: string | undefined; delivery?: NotificationDelivery | undefined; } |
expo-notifications · DailyTriggerInput | { type: SchedulableTriggerInputTypes.DAILY; channelId?: string | undefined; hour: number; minute: number; } | { type: SchedulableTriggerInputTypes.DAILY; channelId?: string | undefined; hour: number; minute: number; delivery?: NotificationDelivery | undefined; } |
expo-notifications · WeeklyTriggerInput | { type: SchedulableTriggerInputTypes.WEEKLY; channelId?: string | undefined; weekday: number; hour: number; minute: number; } | { type: SchedulableTriggerInputTypes.WEEKLY; channelId?: string | undefined; weekday: number; hour: number; minute: number; delivery?: NotificationDelivery | undefined; } |
expo-notifications · YearlyTriggerInput | { type: SchedulableTriggerInputTypes.YEARLY; channelId?: string | undefined; day: number; month: number; hour: number; minute: number; } | { type: SchedulableTriggerInputTypes.YEARLY; channelId?: string | undefined; day: number; month: number; hour: number; minute: number; delivery?: NotificationDelivery | undefined; } |
expo-notifications · MonthlyTriggerInput | { type: SchedulableTriggerInputTypes.MONTHLY; channelId?: string | undefined; day: number; hour: number; minute: number; } | { type: SchedulableTriggerInputTypes.MONTHLY; channelId?: string | undefined; day: number; hour: number; minute: number; delivery?: NotificationDelivery | undefined; } |
expo-notifications · NotificationContentInput | { title?: string | null | undefined; subtitle?: string | null | undefined; body?: string | null | undefined; data?: Record<string, unknown> | undefined; badge?: number | undefined; sound?: boolean | "default" | "defaultCritical" | "defaultRingtone" | (string & {}) | undefined; launchImageName?: string | undefined; vibrate?: number[] | undefined; priority?: string | undefined; color?: string | undefined; autoDismiss?: boolean | undefined; categoryIdentifier?: string | undefined; sticky?: boolean | undefined; attachments?: NotificationContentAttachmentIos[] | undefined; interruptionLevel?: Inter… | { title?: string | null | undefined; subtitle?: string | null | undefined; body?: string | null | undefined; data?: Record<string, unknown> | undefined; badge?: number | undefined; sound?: boolean | "default" | "defaultCritical" | "defaultRingtone" | (string & {}) | undefined; launchImageName?: string | undefined; vibrate?: number[] | undefined; priority?: string | undefined; color?: string | undefined; autoDismiss?: boolean | undefined; categoryIdentifier?: string | undefined; threadIdentifier?: string | undefined; sticky?: boolean | undefined; attachments?: NotificationContentAttachmentIos[]… |
expo-notifications · NotificationContentAndroid | { badge?: number | undefined; color?: string | undefined; priority?: AndroidNotificationPriority | undefined; vibrationPattern?: number[] | undefined; } | { badge?: number | undefined; color?: string | undefined; priority?: AndroidNotificationPriority | undefined; vibrationPattern?: number[] | undefined; threadIdentifier: string | null; } |
已删除的类或接口成员
未发现。
已修改的类或接口成员
未发现。
新增弃用
未发现。
要求变化(engines、peer 依赖)
未发现。
新增导出 (3)
| import | export | kind |
|---|---|---|
expo-notifications | NotificationDelivery | type |
expo-notifications | getExactAlarmPermissionsAsync | function |
expo-notifications | requestExactAlarmPermissionsAsync | function |
这些版本之间的 changelog
软件包作者发布的文本,按原样显示。
58.1.4
### Patch Changes
- Updated dependencies.
- @expo/image-utils@0.12.5
- expo-constants@58.0.1258.1.3
### Patch Changes
- [iOS] Fix a crash (`EXC_BAD_ACCESS` in `__RawDictionaryStorage.find`) when the JS notification handler responds while the same foreground notification times out or another one arrives, by handling `handleNotificationAsync` on the main queue. ([#51370](https://github.com/expo/expo/pull/51370) by [@GersonRocha9](https://github.com/GersonRocha9))
- Updated dependencies. ([#51368](https://github.com/expo/expo/pull/51368), [#49784](https://github.com/expo/expo/pull/49784))
- expo-application@58.1.1
- expo-constants@58.0.1158.1.2
### Patch Changes
- Updated dependencies. ([#51209](https://github.com/expo/expo/pull/51209))
- expo-application@58.1.058.1.1
### Patch Changes
- [Android] Add support for grouping notifications via `threadIdentifier`. ([#43388](https://github.com/expo/expo/pull/43388) by [@vonovak](https://github.com/vonovak))
- [Android] Add `getExactAlarmPermissionsAsync` and `requestExactAlarmPermissionsAsync` to check and request the exact alarm permission. ([#50919](https://github.com/expo/expo/pull/50919) by [@vonovak](https://github.com/vonovak))
- [Internal] [Android] Return notification permission responses as records instead of bundles. ([#51060](https://github.com/expo/expo/pull/51060) by [@vonovak](https://github.com/vonovak))
- Updated dependencies. ([#51077](https://github.com/expo/expo/pull/51077))
- expo-application@58.0.4
- @expo/image-utils@0.12.4
- expo-constants@58.0.1058.1.0
### Minor Changes
- Add `enableRemoteNotifications` config plugin option. Set it to `false` to skip the APNs entitlement for apps that use only local notifications. Defaults to `true`. ([#50891](https://github.com/expo/expo/pull/50891) by [@netmaxt3r](https://github.com/netmaxt3r))
### Patch Changes
- Updated dependencies. ([#50391](https://github.com/expo/expo/pull/50391))
- @expo/image-utils@0.12.358.0.11
### Patch Changes
- Bump precompiled artifacts due to ABI breakage in expo-modules-jsi@58.0.6. ([#50881](https://github.com/expo/expo/pull/50881) by [@kitten](https://github.com/kitten))
- Updated dependencies. ([#50881](https://github.com/expo/expo/pull/50881))
- expo-application@58.0.358.0.10
### Patch Changes
- Allow native push token requests to retry after a transient failure while preserving shared in-flight requests. ([#50848](https://github.com/expo/expo/pull/50848) by [@JoaoPauloCMarra](https://github.com/JoaoPauloCMarra))
- [Android] Fix notification action buttons going missing after an app update that changes R8 minification, until the app is opened again. ([#50799](https://github.com/expo/expo/pull/50799) by [@icoric4](https://github.com/icoric4))58.0.9
### Patch Changes
- Force-bump all packages, due to migration to changesets. ([#50762](https://github.com/expo/expo/pull/50762) by [@kitten](https://github.com/kitten))
- Updated dependencies. ([#50762](https://github.com/expo/expo/pull/50762), [#49511](https://github.com/expo/expo/pull/49511), [#50661](https://github.com/expo/expo/pull/50661))
- @expo/image-utils@0.12.2
- expo-application@58.0.2
- expo-constants@58.0.958.0.8
_This version does not introduce any user-facing changes._58.0.7
_This version does not introduce any user-facing changes._58.0.6
_This version does not introduce any user-facing changes._58.0.5
_This version does not introduce any user-facing changes._58.0.4
_This version does not introduce any user-facing changes._58.0.3
_This version does not introduce any user-facing changes._58.0.2
_This version does not introduce any user-facing changes._58.0.1
_This version does not introduce any user-facing changes._58.0.0
### 🛠 Breaking changes
- Show notifications that arrive while the app is in the foreground, unless the app asks for another behavior with `setNotificationHandler`. A handler that doesn't answer within 3 seconds no longer drops the notification. `setNotificationHandler(null)` still stops `expo-notifications` from showing a notification. ([#49072](https://github.com/expo/expo/pull/49072) by [@vonovak](https://github.com/vonovak))
- [Android] Prevent an FCM `dataString` field from overriding the notification's derived data. ([#49274](https://github.com/expo/expo/pull/49274) by [@vonovak](https://github.com/vonovak))
### 🎉 New features
- [android] Add a `delivery` option to `DateTriggerInput` and the repeating wall-clock triggers (`DailyTriggerInput`, `WeeklyTriggerInput`, `MonthlyTriggerInput`, `YearlyTriggerInput`). Set it to `'alarmClock'` to deliver the notification via `AlarmManager.setAlarmClock()`, which OEM battery policies do not defer. Intended for time-critical, user-facing alarms. ([#49687](https://github.com/expo/expo/pull/49687) by [@capt-muji](https://github.com/capt-muji))
- [ios] Forward notification center calls to a `UNUserNotificationCenterDelegate` that another library set, so that both libraries keep working. ([#48313](https://github.com/expo/expo/pull/48313) by [@vonovak](https://github.com/vonovak))
- [ios] Add support for grouping notifications via `threadIdentifier`. ([#49429](https://github.com/expo/expo/pull/49429) by [@vonovak](https://github.com/vonovak))
- [Android] Add a `largeIcon` config plugin property that sets the notification large icon. ([#49481](https://github.com/expo/expo/pull/49481) by [@expo-bot](https://github.com/expo-bot))
### 🐛 Bug fixes
- [Android] Prevent a crash when reading the notification large icon from a manifest without meta-data. ([#49273](https://github.com/expo/expo/pull/49273) by [@vonovak](https://github.com/vonovak))
- [iOS] Fix a data race on `NotificationCenterManager`'s delegate list that crashed the app with `SIGSEGV` when one app context registered its modules while another tore its own down, such as on a dev-client reload or `Updates.reloadAsync()`. [#49554](https://github.com/expo/expo/pull/49554) by [@dennytosp](https://github.com/dennytosp))
- [Android] Prevented `onUserLeaveHint` from firing when a notification tap opens the app, which made picture-in-picture implementations enter PiP unexpectedly. ([#48471](https://github.com/expo/expo/pull/48471) by [@stareezy-1](https://github.com/stareezy-1))
- [iOS] Avoid warning when an aborted push token registration request rejects with a native fetch cancellation error. ([#48547](https://github.com/expo/expo/pull/48547) by [@JoaoPauloCMarra](https://github.com/JoaoPauloCMarra))
- [Android] Prevent a crash on notification tap when `getLaunchIntentForPackage` throws on some OEM ROMs. ([#47889](https://github.com/expo/expo/pull/47889) by [@nunocaseiro](https://github.com/nunocaseiro))
- [web] Fixed crash when browser storage is blo把这些数据交给你的 AI 智能体
Vigia 是免费的 MCP 服务器:你的编程智能体在写代码之前就能检查版本、不兼容变更和安全漏洞。无需注册,无需 API 密钥。
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
添加到 Cursor添加到 VS Code★ 在 GitHub 上加星
任何其他 MCP 客户端
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }常见问题
将 expo-notifications 从 57 升级到 58 有哪些不兼容变更?
在 expo-notifications 57.0.23 与 58.1.4 之间,Vigia 发现 0 个已删除的导出、7 个已修改的签名,以及 0 个已删除或修改的类或接口成员。
expo-notifications 58 中弃用了哪些内容?
expo-notifications 58.1.4 中有 0 个导出或成员新被标记为弃用。
供智能体使用
GET https://vigia.coredls.cloud/v1/packages/npm/expo-notifications/upgrade?from=57.0.23&to=58.1.4