不要显示远程通知?

时间:2017-04-02 22:36:49

标签: ios push-notification

我正在执行一些逻辑来确定是否在我的Application delegate received call to -application:didReceiveRemoteNotification:fetchCompletionHandler: but the completion handler was never called.功能中显示通知。如果我想不显示通知我怎么不显示警报?

如果我没有包含完成处理程序,我会收到错误completionHandler([])

添加completionHandler(nil)UIBackgroundFetchResult说我需要将 #include "stm32f4xx.h" #include "stm32f4xx_nucleo.h" #include "system_stm32f4xx.h" #include "stm32f4xx_hal_gpio.h" #include "stm32f4xx_hal_rcc.h" GPIO_InitTypeDef GPIO_InitStructure; int main(void) { HAL_Init(); __GPIOA_CLK_ENABLE(); GPIO_InitStructure.Pin = GPIO_PIN_5; GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStructure.Pull = GPIO_PULLUP; GPIO_InitStructure.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); __GPIOC_CLK_ENABLE(); GPIO_InitStructure.Pin = GPIO_PIN_13; GPIO_InitStructure.Mode = GPIO_MODE_INPUT; GPIO_InitStructure.Pull = GPIO_PULLDOWN; GPIO_InitStructure.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOC, &GPIO_InitStructure); int PinState; while (1) { PinState = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13); if(PinState == 1){ HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5, GPIO_PIN_SET); } else { HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5, GPIO_PIN_RESET); } } } 传递给完成处理程序。如何不显示收到的远程通知?

1 个答案:

答案 0 :(得分:0)

您似乎正在寻找无声通知。它们可用于在不通知用户的情况下通知新内容的应用。应用程序将在后台和应用程序中被唤醒,而不是显示通知警报:didReceiveRemoteNotification:fetchCompletionHandler:将被调用。然后,您有机会以透明方式处理用户的任何信息:

下载一些内容 同步一些元素, 当用户打开它时,直接在应用程序内通知用户 请注意,您的时间限制为30秒。

配置静默通知

  

要支持静默远程通知,请添加远程通知   值为Info.plist文件中的UIBackgroundModes数组。

<key>UIBackgroundModes</key>
<array>
    <string>remote-notification</string>
</array>

配置无声通知

  

aps词典还可以包含content-available属性。   值为1的content-available属性允许远程   通知充当无声通知。当一个无声的通知   到了,iOS在后台唤醒你的应用程序,以便你可以得到   来自服务器的新数据或进行后台信息处理。   不会告知用户有关新信息或已更改的信息   从一个无声的通知,但他们可以找到下一个   他们打开你的应用程序的时间。

对于静默通知,请注意确保aps词典中没有警报,声音或徽章有效负载。如果您不遵循此指南,则错误配置的通知可能会受​​到限制,并且不会在后台传递给应用程序,而是显示给用户