•插件初始化时会给宿主 AppDelegate 安装 APNs 注册回调桥接。

•捕获:
◦application:didRegisterForRemoteNotificationsWithDeviceToken:
◦application:didFailToRegisterForRemoteNotificationsWithError:
•即使宿主没有转发 Cordova 的 CDVRemoteNotification,插件也能自己收到 APNs token。
•getFirebaseToken 等待 APNs token 时,会同时轮询 Firebase Messaging 已缓存的 APNSToken。
•返回结果增加诊断字段:
◦apnsTokenSource: plugin / firebase / none
◦cachedAPNSTokenAvailable
◦firebaseAPNSTokenAvailable
This commit is contained in:
aria committed 2026-05-25 11:26:31 +09:00
1 parent 63703b966e
commit 8fcb440d8a
4 files changed
+221 -54

No files matched your search

+9 -1
View File
@@ -152,7 +152,15 @@ BluememeUtils.requestPushPermission(function (permission) {
}, error);
```
iOS 上 FCM token 依赖 APNs device token。插件会在 `getFirebaseToken` 内等待 Cordova 收到 APNs token 后再向 Firebase 请求 FCM token;如果 APNs token 超时或注册失败,会返回 `APNS_TOKEN_NOT_AVAILABLE` 或 `APNS_TOKEN_FAILED`。
iOS 上 FCM token 依赖 APNs device token。必须等待 `requestPushPermission` 的 success callback 返回后再调用 `getFirebaseToken`,不要把 `requestPushPermission()` 当成同步调用。
插件会在 `getFirebaseToken` 内等待 APNs token 后再向 Firebase 请求 FCM token。iOS 侧会同时使用三种来源降低宿主 AppDelegate 未转发回调造成的问题:
- 直接桥接 `application:didRegisterForRemoteNotificationsWithDeviceToken:`
- 监听 Cordova 的 `CDVRemoteNotification`
- 轮询 Firebase Messaging 已缓存的 `APNSToken`
如果 APNs token 超时或注册失败,会返回 `APNS_TOKEN_NOT_AVAILABLE` 或 `APNS_TOKEN_FAILED`。返回结果会包含 `apnsTokenSource`、`cachedAPNSTokenAvailable`、`firebaseAPNSTokenAvailable` 等诊断字段。
返回示例: