当应用程序处于终止状态时,iOS静默推送通知不会收到

时间:2019-03-04 13:48:12

标签: ios objective-c notifications

我想在收到静默通知时显示基于某种条件的显示通知,然后生成本地通知。还可以在xcode中启用后台模式,并启用远程通知和后台获取。 对于像这样的静默通知消息格式-

{
 "message":{
   "token":"iosdevicetoken",
   "apns": {   
   "payload": {
            "aps": {
                "content-available": 1,
                "category": "GENERAL",
                "priority": "high",
                "token": "randomkey",
                "customkey": "abcs"
            }
        }
    }
  }
}

但是当应用程序处于终止状态(从后台状态滑动)时,不会调用下面的委托方法

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
}

1 个答案:

答案 0 :(得分:0)

这是故意的。从documentationpublic function actionView($id) { $con = Yii::$app->db; $sql = $con->createCommand( "SELECT * FROM track where collecting_id=:collecting_id ORDER BY collecting_id desc", [':collecting_id' => $id] ); $posts = $sql->queryAll(); return $this->render( 'view', [ 'model' => $this->findModel($id), 'posts' => $posts, ] ); }

  

此外,如果启用了远程通知后台模式,则系统将启动您的应用程序(或将其从挂起状态唤醒),并在远程通知到达时将其置于后台状态。但是,如果用户强制退出应用程序,系统不会自动启动您的应用程序。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会尝试再次自动启动您的应用程序。

(添加了重点)

iOS认为用户从任务切换器中删除了该应用程序,这表明他们不希望该应用程序在后台运行。因此,在用户明确重新启动应用程序之前,iOS不会在后台重新启动该应用程序。