我正在执行一些逻辑来确定是否在我的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);
}
}
}
传递给完成处理程序。如何不显示收到的远程通知?
答案 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词典中没有警报,声音或徽章有效负载。如果您不遵循此指南,则错误配置的通知可能会受到限制,并且不会在后台传递给应用程序,而是显示给用户