apns關於APP數字角標的理解

来源:http://www.cnblogs.com/tandaxia/archive/2017/01/15/6287663.html
-Advertisement-
Play Games

前兩天群里有兄弟在吐槽,做遠程推送的時候:老闆要求APP桌面圖標的右上角顯示紅色未讀數字(數字角標)要精準,有多少未讀通知就顯示數字幾;但是後臺的弟兄在發送推送通知的時候,每次的角標是1,然後要移動端這邊自己去把這個未讀數字去累加,然後顯示在APP上;並且後臺非常固執的認為這個累加未讀消息數量是在移 ...


  前兩天群里有兄弟在吐槽,做遠程推送的時候:老闆要求APP桌面圖標的右上角顯示紅色未讀數字(數字角標)要精準,有多少未讀通知就顯示數字幾;但是後臺的弟兄在發送推送通知的時候,每次的角標是1,然後要移動端這邊自己去把這個未讀數字去累加,然後顯示在APP上;並且後臺非常固執的認為這個累加未讀消息數量是在移動端處理的..... 

  這就尷尬了,碰到固執的隊友,溝通不成的時候確實是很痛苦的!

 

  這裡我說說自己在做推送功能時候的這個角標的驗證過程和理解,給後面的為碰到類似情況的同學一些參考。

  隨便截個圖舉個例子看看

 

當APP是處於後臺的時候,實現這個還是好說的,因為當推送通知到達的時候是可以監聽到的,可以獲取到推送信息裡面的角標數字然後進行累加。

但是當APP完成退出後臺的時候,想要app監聽到通知並且讀取通知信息設置角標,這個好像是辦不到的!

 

後臺推送消息的格式按照蘋果官方提供的格式,大致是這樣:

{
    "aps" : {
        "alert" : {
            "title" : "Game Request",
            "body" : "Bob wants to play poker",
            "action-loc-key" : "PLAY"
        },
        "badge" : 5
    },
    "acme1" : "bar",
    "acme2" : [ "bang",  "whiz" ]
}

“aps”格式是固定的,後面的"acme1", "acme2”是自定義的數據。其中“badge"就是app的角標數字

 

所以要證實APP的桌面紅色角標(未讀消息數字)到底是由後臺控制的還是移動端自己控制的,這個很容易。

讓app內部不要自己操作角標變化,或者把該app完全退出,然後後臺開始推送,假設推送的消息badge是數字幾,而且app的角標也是顯示數字幾,

這個就足以證明app的紅色角標是由後臺推送時候控制的了!

 

當然話說回來,想要實現對app這個角標的精準顯示,需要一個強大的後臺:對每個會員在app的讀取未讀消息進行追蹤記錄上報,

然後下次推送的時候,對每個會員要進行未讀消息的統計,然後在推送消息裡面設置精準的badge數字。就能做到app精準的顯示未讀消息數字了。

我們看比如QQ,微信等app,它們的角標數字是做的非常精準的,人家的後臺之強大,那是沒得比的。

 

但是我們一般的APP, 你也想做到角標精準?有必要嗎?你連做推送都是用了第三方的推送sdk如極光、個推,你還想做到精準顯示角標,你去看看極光和個推對於群推的方法,

壓根都沒提供精準設置badge的位置,說明想實現精準實現角標,專門研究推送的這些第三方公司也覺得難度很大,或者說要付出很大的代價!

 

一般來說,大多數app的角標數字做的是意思意思,沒那個精準,我測試過的有百度地圖、簡書、新浪財經等等,app的角標顯示也沒有做什麼精準顯示。所以對於咱們做的如果是一個普通的app, 角標數字的顯示也就意思意思就行了,主要是為了提醒用戶你有未讀消息嘛!真的想做到精準顯示角標,那就要和後臺的兄弟談好,讓他們做好準備加油開乾把!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • MarkDown 一種用於寫作的輕量級【標記語言】。它用簡潔的語法代替排版,而不像一般的文字處理軟體 Word 或者 Pages 有大量的排版、字體設置等。 如果你對文章的樣式沒有太多要求,只註重寫文章本身的話 MarkDown 將會是一個不錯的選擇。 一、 工具 支持 MarkDown 寫作的軟體 ...
  • 一直不想升級Xcode,但是沒辦法項目進度只能升級Xcode8,果然不出所料出現了不少bug, Xcode7運行一直沒有問題,但是在Xcode8上一直輸出AQDefaultDevice (173): skipping input stream 網上查到解決辦法 1.選擇 Product -->Sch ...
  • 假如下麵的一張圖片,是用來做按鈕的背景圖片的,原始尺寸是76 × 40 我們通過代碼將這張圖片設置為按鈕的背景圖片,假如我們將創建好的按鈕的寬高設置為:(W=200, H=50)代碼如下: 結果如下:圖片被拉伸了。 原因分析:是將原是尺寸為76 × 40 的圖片拉伸成了W=200, H=50;解決方 ...
  • 自定義彈框 效果 特點 1.可以定製彈框的樣式和內容。 2.例子中寫了三種不同的彈框樣式,可根據需求增加彈窗樣式。 用法 1.將父類文件夾中的文件拖入自己的工程中,然後定製自己需要的彈窗。(代碼中寫了三個形式彈窗,大家可參考例子編寫自己需要的形式) 2.定製的彈窗都得繼承這個父類,並實現它的方法。 ...
  • 最近在做下拉框,本來想用spinner,可是spinner達不到項目要求,跟同學同事問了一圈,都在用popwindow, 網上看了一下,popwindow挺簡單的,可定製性挺強的,符合我的要求,所以,借鑒網上看的代碼,自己擼了一 遍。寫篇博客以防忘記。 首先,先寫個自定義佈局,代碼如下 <?xml ...
  • 這裡是放代碼的地方嗎? ...
  • 設計師很多時候會有一像素線的需求,怎麼去實現有下麵幾種方法。 一、 Image 1. 資源圖片 找設計師要個圖片,用UIImageView 或者 CALayer的方式顯示出來 2. CoreGraphics繪製 用CoreCraphics的方式畫一個 UIImage,然後用1的方法展示出來 此類方法 ...
  • 此開源框架官網地址:https://github.com/astuetz/PagerSlidingTabStrip 可以理解為配合ViewPager使用的互動式頁面指示器控制項。 話不多說,先上效果圖: 為了演示其中的pstsIndicatorHeight與pstsUnderlineHeight 的區 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...