[英]How can I create iOS push notifications that don’t vibrate?
我知道如何创建静音推送通知(播放静音的声音文件)。 我还想发送一个不振动手机的推送通知。
当按照以下建议设置静音声音文件时,手机在锁定或应用程序未激活时仍会振动。
我的有效载荷仍然振动:
{
aps = {
alert = {
"loc-key" = "SOME_KEY";
};
badge = 1;
sound = "silence.caf";
};
}
这可能吗?
省略声音键应该可以解决问题:
{"aps":{"alert":{"loc-key":"SOME_KEY"}, "badge":1}
文档声明“如果声音文件不存在或默认值被指定为值,则播放默认警报声音。”。 他们没有说的是,如果你根本不提供声音键,就不会播放声音。 如果没有播放声音,手机也不应该振动。
我是这样做的:服务器发送推送到具有声音文件名的设备是静默的。 而已。
例:
来自服务器的有效负载:
{ aps = { "content-available" = 1; sound="silence.mp3" }; data-id = 1234; }
并且设备在AppDelegate
处理它:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
NSInteger data_id= [userInfo[@"data-id"] integerValue];
NSLog(@"Data-id: %i", data_id);
//
// code...
//
// UIBackgroundFetchResultNoData/UIBackgroundFetchResultFailed/UIBackgroundFetchResultNewData
completionHandler(UIBackgroundFetchResultNewData);
}
当您注册推送通知时,不要求声音类型( UIRemoteNotificationTypeSound
)
- (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType)types
您可以通过手动删除通知设置中的声音权限来测试此操作
[[UIApplication sharedApplication]registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge];
请尝试使用AppDelegate的上述代码applicationDidFinsihLaunching方法注册远程通知
我遇到过类似的问题。 可以通过在项目功能中设置背景提取来修复振动
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.