2016-08-22 6 views
-3
NSDictionary *userInfo = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
    if(userInfo[@"aps"][@"url"]) 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:userInfo[@"aps"][@"url"]]]; 

このコードをプッシュ通知に迅速に書きたいと思います。自分のサーバーからプッシュ通知を送信すると、自分の電話に表示されません。目的のCプッシュ通知コードをスウィフトに変換する方法

答えて

0
if let userInfo = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary { 

    if var alertDict = userInfo["aps"] as? Dictionary<String, String> { 
     let url = alertDict["url"]! 
     UIApplication.sharedApplication().openURL(NSURL(string: url)!) 
    } 
} 
0
func registerForRemoteNotifications() { 
     do { 
     var types = [.Alert, .Badge, .Sound] 
     var settings = UIUserNotificationSettings.settingsForTypes(types, categories: nil) 
     UIApplication.sharedApplication().registerUserNotificationSettings(settings!) 
     UIApplication.sharedApplication().registerForRemoteNotifications() 
    } 
} 

//invoke when registeration of device is successfully 
//get device token for push notification when device is registered 

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { 
     do { 
     print("\(deviceToken)") 
     var strDeviceToken = "\(deviceToken)" 
     strDeviceToken = strDeviceToken.stringByReplacingOccurrencesOfString(" ", withString: "") 
     strDeviceToken = strDeviceToken.stringByReplacingOccurrencesOfString("<", withString: "") 
     strDeviceToken = strDeviceToken.stringByReplacingOccurrencesOfString(">", withString: "") 
     NSUserDefaults.standardUserDefaults().setValue(strDeviceToken, forKey: NOTIFICATION_DEVICE_TOKEN) 
     print("Successfully registered for remote notifications With device Token \(strDeviceToken)") 
    } 
} 

//invoke when registeration of device is failed 

func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError?) { 
     do { 
     print("Notification registration failed reason:-\(error.localizedDescription)") 
    }  catch let exception { 
     print("Exception in fun:\(__func__) line:\(__LINE__) reason:\(exception.reason)") 
    } 
} 

//invoke when push notification is received 

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { 
     do { 
     print("userInfo:-\(userInfo)") 
    }  catch let exception { 
     print("Exception in fun:\(__func__) line:\(__LINE__) reason:\(exception.reason)") 
    } 
} 
0

これを試してみてください:

var userInfo = (launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] as! [NSObject : AnyObject]) 
if userInfo["aps"]["url"] { 
    UIApplication.sharedApplication().openURL(NSURL(string: userInfo["aps"]["url"])!) 
} 

を今後の参考のために:https://objectivec2swift.com/#/home/converter/

関連する問題