测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可 | MIT |
发布上次发布 | 2016年5月 |
由 Koen Punt 维护。
依赖 | |
AWSCore | ~> 2.3 |
AWSSNS | ~> 2.3 |
AWS SNS 推送注册管理器
此库的代码是从移动端示例应用程序中提取的。
它支持 Objective-C 和 Swift。
直接依赖是 AWSCore
和 AWSSNS
框架。
要实际上与 AWS 通信,还需要 AWSCognito
框架。
将 AWSPushManager.h
和 AWSPushManager.m
复制到您的项目中,并确保添加 AWSCore
和 AWSSNS
框架。
Objective-C
导入头文件
#import <AWSPushManager/AWSPushManager.h>
并将 AppDelegate.m
更新为以下内容
- (BOOL)didFinishLaunching:(UIApplication *)application
withOptions:(NSDictionary *)launchOptions {
NSString *platformARN = @"arn:aws:sns:us-east-1:123456789:app/APNS_SANDBOX/SomeAppName";
[AWSPushManager defaultPushManager].defaultPlatformARN = platformARN;
return [[AWSPushManager defaultPushManager] interceptApplication:application
didFinishLaunchingWithOptions:launchOptions];
}
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[[AWSPushManager defaultPushManager] interceptApplication:application
didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}
- (void)application:(UIApplication *)application
didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
[[AWSPushManager defaultPushManager] interceptApplication:application
didFailToRegisterForRemoteNotificationsWithError:error];
}
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
[[AWSPushManager defaultPushManager] interceptApplication:application
didReceiveRemoteNotification:userInfo];
}
Swift
导入框架
import AWSPushManager
或者如果不使用框架,请在 App-Bridging-Header.h
中导入头文件。
#import <AWSPushManager/AWSPushManager.h>
并将 AppDelegate.swift
更新为以下内容
func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let platformARN = "arn:aws:sns:us-east-1:123456789:app/APNS_SANDBOX/SomeAppName"
AWSPushManager.setDefaultPlatformARN(platformARN)
return AWSPushManager.defaultPushManager().interceptApplication(application,
didFinishLaunchingWithOptions: launchOptions)
}
func application(application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
AWSPushManager.defaultPushManager().interceptApplication(application,
didRegisterForRemoteNotificationsWithDeviceToken: deviceToken)
}
func application(application: UIApplication,
didFailToRegisterForRemoteNotificationsWithError error: NSError) {
AWSPushManager.defaultPushManager().interceptApplication(application,
didFailToRegisterForRemoteNotificationsWithError: error)
}
func application(application: UIApplication,
didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
AWSPushManager.defaultPushManager().interceptApplication(application,
didReceiveRemoteNotification: userInfo)
}
要开始接收通知,您必须订阅一个或多个主题。
Objective-C
- (void)viewDidLoad {
[super viewDidLoad];
AWSPushManager *pushManager = [AWSPushManager defaultPushManager];
[pushManager registerForPushNotifications];
NSString *topicARN = @"arn:aws:sns:us-east-1:123456789:SomeApp_alldevices";
[pushManager registerTopicARNs:@[topicARN, ]];
}
Swift
override func viewDidLoad() {
super.viewDidLoad()
let pushManager = AWSPushManager.defaultPushManager()
pushManager.registerForPushNotifications()
let topicARN = "arn:aws:sns:us-east-1:123456789:SomeApp_alldevices"
pushManager.registerTopicARNs([topicARN])
}
为了在任何位置处理通知,您可以使用 AWSPushManager
的代理。
Objective-C
- (void)pushManager:(AWSPushManager *)pushManager
didReceivePushNotification:(NSDictionary *)userInfo;
Swift
func pushManager(pushManager: AWSPushManager!,
didReceivePushNotification userInfo: [NSObject : AnyObject]!)
完整库文档可以在 CocoaDocs 上找到:http://cocoadocs.org/docsets/AWSPushManager/
git checkout -b my-new-feature
)git commit -am 'Added some feature'
)git push origin my-new-feature
)