AWSPushManager 1.0.0

AWSPushManager 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布上次发布2016年5月

Koen Punt 维护。



 
依赖
AWSCore~> 2.3
AWSSNS~> 2.3
 

  • Koen Punt

AWS SNS 推送注册管理器

此库的代码是从移动端示例应用程序中提取的。

它支持 Objective-C 和 Swift。

依赖

直接依赖是 AWSCoreAWSSNS 框架。

要实际上与 AWS 通信,还需要 AWSCognito 框架。

安装

手动安装

AWSPushManager.hAWSPushManager.m 复制到您的项目中,并确保添加 AWSCoreAWSSNS 框架。

初始化

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/

贡献

  1. Fork 它
  2. 创建您的功能分支(git checkout -b my-new-feature
  3. 提交您的更改(git commit -am 'Added some feature'
  4. 将分支推送到远程(git push origin my-new-feature
  5. 创建新的 Pull Request