簡體   English   中英

蘋果推送通知不會自動更改圖標徽章

[英]Apple push notification not changing icon badge automatically

我已經在iPhone(4S,iOS 5.1)中看到了郵件應用程序,即使收到新郵件,即使應用程序未運行,它也會自動更新徽章計數。 因此也可以在我的應用程序中實現此行為,對嗎?

我的應用程序成功注冊了所有三種類型的推送通知-徽章,警報和聲音。 此應用程序的所有3種遠程通知的“電話設置”均設置為“開”。

我的應用程序會收到遠程通知,並顯示警報,播放聲音,但不會更新徽章編號。 如果我通過警報上的“查看”按鈕啟動應用程序,則我的應用程序可以完美讀取徽章值,並且可以從代碼中更改/刪除/設置圖標徽章。

通知到達后,iOS無法自動更改我的應用程序圖標徽章的任何特定原因? 我已經看過所有類似的帖子,他們都在討論有關電話設置或其注冊的通知類型,或有關檢查有效載荷JSON是否包含徽章的問題。

還有其他可能導致此問題的原因嗎?

這是我的代碼塊:

每次啟動應用程序時注冊APN-

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];

設備令牌幾乎立即收到。 令牌已發送給提供商,並且我正在接收通知。 警報和聲音有效。 但是在我啟動應用程序並手動更改它之前,徽章沒有自動作用。 請幫忙。

我也有同樣的問題。 沒有引用徽章圖標。 經過數小時的嘗試調整JSON(在驗證手機上的應用程序顯示徽章,聲音,警報之后)-問題是我添加了UIRemoteNotificationTypeNewsstandContentAvailability作為我的應用程序正在注冊的警報類型之一。 (我發瘋了,只是撿了一切)

因此,當還同時使用UIRemoteNotificationTypeNewsstandContentAvailability時,它似乎覆蓋了允許Ap /徽章編號更新應用程序圖標的功能。 (必須要更新報亭信息)

現在,此問題已解決。 提供者服務器正在發送帶引號的徽章編號(作為JSON字符串,即“ 9”)。 奇怪的是,APNs / iOS無法將其識別為整數。 現在引號被刪除,它可以工作:)

我有一個類似的問題,通過在徽章編號中強制使用整數來解決此問題(將PHP與MySQL數據庫中的數據一起使用):

$body['aps'] = array(
        'alert' => array(
        'action-loc-key'=> utf8_encode($r['button_action']),
        'body'          => utf8_encode($r['message']),
        'launch-image'  => ''
        ),
    'badge' => (int)$r['badge_number'],
    'sound' => 'default'
    );

附注:請查看utf8_encode命令,以避免我之前也遇到過json_encode錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM