ASJPushNotificationManager 1.2

ASJPushNotificationManager 1.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2022年1月

Sudeep 维护。



  • Sudeep

ASJPushNotificationManager

要使您应用支持推送/远程通知,需要设置很多。您需要在 Apple 开发者门户上创建证书并在项目中注册它们。我个人认为这会使我的 AppDelegate 复杂化。

从 iOS 8.0 开始,推送通知的设置过程已改变,如果您仍然支持以下版本,则意味着需要更多的代码。此库抽象注册设备以接收推送通知的代码,并为您处理代理方法。

安装

推荐使用 CocoaPods 安装此库。只需在 Podfile 中添加以下命令并运行 pod install 即可。

pod 'ASJPushNotificationManager'

用法

您需要在需要请求用户推送权限的类中导入 ASJPushNotificationManager.h

+ (instancetype)sharedInstance;

此类是单例的,您必须使用它的共享实例来访问定义的属性和方法。

- (void)registerWithTypes:(ASJPushNotificationType)types categories:(nullable NSSet<UNNotificationCategory *> *)categories completion:(nullable CompletionBlock)completion;

调用此方法以触发注册流程。当首次调用时,它会提示用户应用希望能够发送推送通知。用户选择后,完成块将被触发,您将收到设备令牌或错误对象。

默认的代理方法 application:didRegisterForRemoteNotificationsWithDeviceToken: 将设备标记作为 NSData 返回。在您在块中收到它之前,它会转换为可用的 NSString。您就像往常一样可以将此字符串传递到您的服务器。 注意 模拟器上不会获取标记。

@property (nullable, readonly, copy, nonatomic) NSString *deviceToken;

生成的设备标记始终可以作为公开属性使用。请注意,如果在未允许接收推送通知的情况下,则可能为 nil

- (void)unregister;

要停止在应用程序中接收推送,您可以取消注册。

处理推送事件

大多数委托方法都被抽象化,即使你在 AppDelegate 中写它们,也不会被调用。您需要观察不同事件的 NSNotification。只需确保在 dealloc 中删除观察者即可。

extern NSString *const ASJAuthorizationSuccessfulNotification;

当权限被授予时发布。

extern NSString *const ASJAuthorizationFailedNotification;

当权限未被授予时发布。

extern NSString *const ASJTokenErrorNotification;

当调用 application:didFailToRegisterForRemoteNotificationsWithError: 时发布的通知。

extern NSString *const ASJTokenReceivedNotification;

当调用 application:didRegisterForRemoteNotificationsWithDeviceToken: 时发布的通知。

extern NSString *const ASJSilentPushReceivedNotification;

当调用 application:didReceiveRemoteNotification:fetchCompletionHandler: 时发布的通知。

extern NSString *const ASJVisiblePushReceivedNotification;

当调用 userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: 时发布的通知。

注意

对于带有 completionHandler 的方法,您必须在这些方法中调用该块,以便它们能正常工作。块将作为 NSNotificationobject 部分接收。

致谢

待办

  • 为iOS 7添加检查,以确保没有警告。

许可证

ASJPushNotificationManager可在MIT许可证下使用。请参阅LICENSE文件以获取更多信息。