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