Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 显示前Parse.com chek推送通知_Swift_Parse Platform_Notifications_Push Notification - Fatal编程技术网

Swift 显示前Parse.com chek推送通知

Swift 显示前Parse.com chek推送通知,swift,parse-platform,notifications,push-notification,Swift,Parse Platform,Notifications,Push Notification,如何在显示前检查推送通知 我需要检查数据,如果数据不正确,我不希望显示通知 我的代码: 我只是使用简单的Parse.com示例。这是我的AppDelegate类 let defaults = NSUserDefaults.standardUserDefaults() func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]

如何在显示前检查推送通知

我需要检查数据,如果数据不正确,我不希望显示通知

我的代码:

我只是使用简单的Parse.com示例。这是我的AppDelegate类

let defaults = NSUserDefaults.standardUserDefaults()

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        Parse.setApplicationId("//",
            clientKey: "//")


        if application.applicationState != UIApplicationState.Background {

            let preBackgroundPush = !application.respondsToSelector("backgroundRefreshStatus")
            let oldPushHandlerOnly = !self.respondsToSelector("application:didReceiveRemoteNotification:fetchCompletionHandler:")

            var pushPayload = false

            if let options = launchOptions {
                pushPayload = options[UIApplicationLaunchOptionsRemoteNotificationKey] != nil
            }
            if (preBackgroundPush || oldPushHandlerOnly || pushPayload) {


                PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)
            }
        }

        var notificationActionAccept :UIMutableUserNotificationAction = UIMutableUserNotificationAction()
        notificationActionAccept.identifier = "FIRST_ACTION"
        notificationActionAccept.title = "Įvertinti"

        var notificationCategory:UIMutableUserNotificationCategory = UIMutableUserNotificationCategory()
        notificationCategory.identifier = "CallNotificationCategory"
        notificationCategory .setActions([notificationActionAccept], forContext: UIUserNotificationActionContext.Default)

        let settings = UIUserNotificationSettings(forTypes: [.Alert, .Sound, .Badge], categories: NSSet(array:[notificationCategory]) as! Set<UIUserNotificationCategory>)

        UIApplication.sharedApplication().registerUserNotificationSettings(settings)
        UIApplication.sharedApplication().registerForRemoteNotifications()

        if let launchOptions = launchOptions as? [String : AnyObject] {
            if let notificationDictionary = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] as? [NSObject : AnyObject] {
                self.application(application, didReceiveRemoteNotification: notificationDictionary)
            }
        }

        return 
    }

    func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool
    {
            return 
    }

    func applicationWillResignActive(application: UIApplication) { 
    }

    func applicationDidEnterBackground(application: UIApplication) {
    }

    func applicationWillEnterForeground(application: UIApplication) {  
    }

    func applicationDidBecomeActive(application: UIApplication) {    
    }

    func applicationWillTerminate(application: UIApplication) { 
    }

    func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
        let installation = PFInstallation.currentInstallation()
        installation.setDeviceTokenFromData(deviceToken)
        installation.saveInBackground()
    }

    func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
        if error.code == 3010 {
            print("Push notifications are not supported in the iOS Simulator.")
        } else {
            print("application:didFailToRegisterForRemoteNotificationsWithError: %@", error)
        }
    }

    func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {

        print(userInfo)

        PFPush.handlePush(userInfo)
        if application.applicationState == UIApplicationState.Inactive {
            PFAnalytics.trackAppOpenedWithRemoteNotificationPayload(userInfo)
        }
    }
}
let defaults=NSUserDefaults.standardUserDefaults()
func应用程序(应用程序:UIApplication,didFinishLaunchingWithOptions启动选项:[NSObject:AnyObject]?)->Bool{
Parse.setApplicationId(“/”,
clientKey:“/”)
如果application.applicationState!=UIApplicationState.Background{
让preBackgroundPush=!application.respondsToSelector(“backgroundRefreshStatus”)
让oldPushHandlerOnly=!self.respondsToSelector(“应用程序:DidReceiveEmotentification:fetchCompletionHandler:”)
var pushPayload=false
如果让选项=启动选项{
pushPayload=选项[UIApplicationLaunchActionsRemoteNotificationKey]!=nil
}
if(仅限preBackgroundPush | | OldPushHandler | | pushPayload){
PFAnalytics.trackAppOpenedWithLaunchOptions(启动选项)
}
}
var notificationActionAccept:UIMutableUserNotificationAction=UIMutableUserNotificationAction()
notificationActionAccept.identifier=“第一步行动”
notificationActionAccept.title=“Įvertini”
var notificationCategory:UIMutableUserNotificationCategory=UIMutableUserNotificationCategory()
notificationCategory.identifier=“CallNotificationCategory”
notificationCategory.setActions([notificationActionAccept],forContext:UIUserNotificationActionContext.Default)
let settings=UIUserNotificationSettings(forTypes:[.Alert、.Sound、.Badge],categories:NSSet(数组:[notificationCategory])as!Set)
UIApplication.sharedApplication().registerUserNotificationSettings(设置)
UIApplication.sharedApplication().registerForRemoteNotifications()
如果let launchOptions=launchOptions as?[字符串:AnyObject]{
如果让notificationDictionary=launchOptions[UIApplicationLaunchActionsRemoteNotificationKey]作为?[NSObject:AnyObject]{
self.application(application,didReceiveMotonification:notificationDictionary)
}
}
返回
}
func应用程序(应用程序:UIApplication,openURL:NSURL,sourceApplication:String?,注释:AnyObject)->Bool
{
返回
}
func应用程序WillResignActive(应用程序:UIApplication){
}
func应用程序标识符背景(应用程序:UIApplication){
}
func应用程序将进入前台(应用程序:UIApplication){
}
func applicationdidebecomeactive(应用程序:UIApplication){
}
func应用程序将终止(应用程序:UIApplication){
}
func应用程序(应用程序:UIApplication,DidRegisterForRemotionTificationswithDeviceToken deviceToken:NSData){
let installation=PFInstallation.currentInstallation()
安装。setDeviceTokenFromData(deviceToken)
安装。saveInBackground()
}
func应用程序(应用程序:UIApplication,DIDFailToRegister for RemoteNotifications,错误:N错误){
如果error.code==3010{
打印(“iOS模拟器不支持推送通知”)
}否则{
打印(“应用程序:DidFailToRegister for RemoteNotifications,错误:%@”,错误)
}
}
func应用程序(应用程序:UIApplication,DidReceiveMemoteNotification用户信息:[NSObject:AnyObject]){
打印(用户信息)
PFPush.handlePush(userInfo)
如果application.applicationState==UIApplicationState.Inactive{
PFAnalytics.trackAppOpenedWithRemoteNotificationPayload(用户信息)
}
}
}

我真的需要帮助:/

不,很遗憾,当你的应用程序在后台时,你无法停止显示通知。
应用程序:DidReceiveMemotentification:
只是一个委托方法,在显示通知时调用,它无法控制是否显示通知。

否,不幸的是,当应用程序位于后台时,您无法停止显示通知。
application:didReceiveMemotentification:
只是一个委托方法,在显示通知时调用,它无法控制是否显示通知