繁体   English   中英

如何创建不振动的iOS推送通知?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM