做客戶端的同學(xué)對老版本兼容肯定是深惡痛絕,每到這個時候就會羨慕做web的小伙伴抬虽,起碼人家能保證所有人看到的都是最新的版本,不用費(fèi)心升級件缸,更不用考慮老版本兼容屏轰。
1、老版本兼容問題的由來
老版本兼容為什么這么惡心呢憋飞,舉個栗子霎苗,假設(shè)客戶端有一個評論板塊,用戶的個人中心里面有“我的評論”榛做,記錄用戶發(fā)表過的所有評論唁盏,樣式大概是這樣:
而且為了方便用戶查看内狸,這個資訊可以直接點(diǎn)擊查看詳情。那么問題來了厘擂,以往的版本昆淡,只有資訊下面能發(fā)表評論,而最近小視頻很火刽严,于是大家開會昂灵,一拍腦袋決定在app里面增加一個小視頻板塊,也需要有評論舞萄,這條評論也會記錄在用戶的評論列表中眨补。
于是,假設(shè)有一個像我這么無聊的用戶倒脓,在新版本小視頻下面發(fā)布了評論撑螺,又跑到老版本上去看,發(fā)現(xiàn)點(diǎn)擊資訊標(biāo)題崎弃,客戶端沒有反應(yīng)(更老火的情況是客戶端沒對無法識別的類型做處理甘晤,點(diǎn)擊后直接崩掉了~)。
或許有人會說這么無聊的用戶很少饲做,那再進(jìn)一步线婚,假設(shè)你們?yōu)榱思訌?qiáng)用戶之間的交流,在首頁會展示你關(guān)注的人在app里面的動態(tài)艇炎,那在一個沒升級最新版本的用戶的首頁就會出現(xiàn)上面這一條酌伊,無法點(diǎn)擊的狀態(tài)。
類似的情況還有很多缀踪,比如有一個廣告位居砖,之前只能填資訊,現(xiàn)在需要能填內(nèi)嵌頁驴娃,位置是一樣的奏候,展示也一樣,只是多支持一種形式唇敞,但是如果不管老版本的話蔗草,那部分用戶還是能看見,但是點(diǎn)不動(千萬別崩)~
2疆柔、以前的處理方式
以往遇到這種情況咒精,我們的處理辦法非常簡單粗暴,直接不給老版本返回旷档,像廣告位這種做起來倒簡單模叙,假設(shè)你填了新的類型,請求來源是老版本鞋屈,就當(dāng)沒配這個位置就是了范咨。
但是上面評論那個就復(fù)雜得多故觅,假設(shè)你們一頁展示二十條數(shù)據(jù),服務(wù)端同學(xué)得去除掉新類型渠啊,然后再從剩下的數(shù)據(jù)里面取20條返回输吏,無形中加大了服務(wù)端壓力,而且當(dāng)后面再增加新類型的時候替蛉,服務(wù)端小伙伴會崩潰的~
3贯溅、最終解決方案
在被老版本兼容折磨了無數(shù)個版本之后,我研究了一堆a(bǔ)pp灭返,發(fā)現(xiàn)了一個終極解決辦法盗迟,對無法識別的新類型,給一個統(tǒng)一的彈窗熙含,或者跳轉(zhuǎn)一個統(tǒng)一的頁面罚缕,類似于這樣:
畢竟,除了強(qiáng)更的app(關(guān)于升級怎静,可以看我的另一篇文章:升級這件“小”事)邮弹,總有一群對你的升級彈窗毫不在意的用戶,用這種方法蚓聘,只需要客戶端加一個默認(rèn)判斷腌乡,換來的是你不用考慮這個功能是不是需要兼容老版本,服務(wù)端小伙伴也不用花時間去打一個又一個補(bǔ)丁夜牡,還可以巧妙的提示用戶:升級新版本有好東西喲(/≧▽≦)/
在使用這種方式的應(yīng)用与纽,再舉個栗子,微信電腦版塘装,打開小程序的時候急迂,會有這個頁面: