やりたいこと
・AWS SNSを使いREMOTEのPUSH通知を実装したい
やってきたこと
・Bridging-Header.hを作成し、<AWSSNS/AWSSNS.h>をimport
・Project Target BuildSettingでheaderファイルを指定
環境
・Xcode7.2
・Swift2
・CocoaPods
コード
ObjectiveC
1<Bridging-Header.h> 2 3#import <AWSSNS/AWSSNS.h>
Swift
1<AppDelegate> 2 3 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 4 5// ((省略)) 6 7 //AmazonSNS Mobile Push 8 // device token の発行 9 let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge], categories: nil) 10 UIApplication.sharedApplication().registerUserNotificationSettings(settings) 11 application.registerUserNotificationSettings(settings) 12 application.registerForRemoteNotifications() 13 14 return true 15 } 16 17 //AmazonSNS Mobile Push 18 // device tokenの発行に成功したら呼ばれる 19 func application( application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData ) { 20 21 // <>と" "(空白)を取る 22 let characterSet: NSCharacterSet = NSCharacterSet( charactersInString: "<>" ) 23 24 var deviceTokenString: String = ( deviceToken.description as NSString ) 25 .stringByTrimmingCharactersInSet( characterSet ) 26 .stringByReplacingOccurrencesOfString( " ", withString: "" ) as String 27 28 print( deviceTokenString ) 29 30 deviceTokenString = "\(deviceToken)" 31 .stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString:"<>")) 32 .stringByReplacingOccurrencesOfString(" ", withString: "") 33 print("deviceTokenString: \(deviceTokenString)") 34 35 36 let sns = AWSSNS.defaultSNS() 37 let request = AWSSNSCreatePlatformEndpointInput() 38 request.token = deviceTokenString 39 request.platformApplicationArn = "YOUR-PLATFORM-APPLICATION-ARN" 40 sns.createPlatformEndpoint(request).continueWithBlock { (task: BFTask!) -> AnyObject! in 41 if task.error != nil { 42 println("Error: \(task.error)") 43 } else { 44 let createEndpointResponse = task.result as AWSSNSCreateEndpointResponse 45 println("endpointArn: \(createEndpointResponse.endpointArn)") 46 } 47 48 return nil 49 } 50 51 52 } 53 54 //AmazonSNS Mobile Push 55 // 起動中 通知からの起動時に呼ばれる 56 func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { 57 //print("application:didReceiveRemoteNotification: " + userInfo.description); 58 59 switch application.applicationState { 60 case .Active: 61 // 起動中 62 print("active") 63 break 64 case .Inactive: 65 // バックグラウンド中で、通知タッチでフォアへ 66 print("inactive") 67 break 68 default: break 69 } 70 71 } 72 73
Bridging-Header.hで他のAWSもimportしていて、それらは入力中にsuggestに出てくる(例えばAWSまで打つと、AWSAbstractIdentityProviderなどはsuggestされる)のでBridging-Header.hは読み込めているように思われます。
よろしくお願いします。
あなたの回答
tips
プレビュー