簡體   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