Hi,各位老鐵,又見面了。之前的文章大多是介紹手游SDK的,但是2016年開始,H5游戲就陸陸續(xù)續(xù)的走進(jìn)了大家的視野之內(nèi),到了2018年,H5游戲走向了爆發(fā),很多游戲CP也開始出品自己自己的H5游戲。所以,咱們這邊文章就聊聊SDK如何適配H5游戲。
H5游戲的形態(tài)
大家都知道H5游戲是純前端代碼編寫的,H5游戲開發(fā)周期相對(duì)較短,靈活性較強(qiáng)。玩家也可以即玩即走,通常的入口都是類似微信游戲中心,QQ空間,視頻廣告等方式引導(dǎo)玩家去玩。像這種形態(tài)的游戲,作為客戶端開發(fā)咱們就不需要過多的關(guān)注這個(gè)。
但是,據(jù)數(shù)據(jù)顯示呢(實(shí)際上就是我跟項(xiàng)目組的技術(shù)聊天吹牛的),這種形態(tài)方式的玩家付費(fèi)率不是很高。而微端的付費(fèi)率相對(duì)更高些,微端簡單來說就是將H5游戲打包成app給玩家下載玩,這種包體,小的只有幾百K,大的也就幾十M的樣子,玩家下載的意愿也相對(duì)高,手機(jī)是直接玩,直接拉起支付付費(fèi),付費(fèi)率也高些。
H5游戲微端
既然是打包成apk,咱們Android開發(fā)的活就來了,通常的做法是:一種是純H5游戲的展示,Android直接用webview加載url即可,渠道的登錄支付全部是Js的調(diào)用;還有另一種是:H5和Android混合調(diào)用,通常是登錄和支付等常用接口都是調(diào)用原生的。下面咱們就來聊聊技術(shù)方案。
純H5交互
本來純H5交互涉及到Android客戶端的開發(fā)量不是很大,直接用webView加載游戲的入口url就可以了。但是在實(shí)際的應(yīng)用中,會(huì)發(fā)現(xiàn)一個(gè)非常致命的痛點(diǎn)問題:url每次加載游戲的資源都需要耗費(fèi)流量,想想當(dāng)玩家玩你的游戲的時(shí)候,耗費(fèi)流量非常多,你是不是想卸載了。所以這里就會(huì)涉及到一個(gè)資源緩存的問題。
下面給大家推薦一個(gè)緩存WebView的庫:CacheWebView
如果沒有特殊需求的話,這個(gè)緩存庫就很符合當(dāng)前的需求了。如果要兼容騰訊的X5內(nèi)核的話,也可以看看這位老鐵的踩坑實(shí)踐:Android-X5WebView封裝(Cookie管理、進(jìn)度監(jiān)聽、適配8.1系統(tǒng)等策略)
不過我在CacheWebView的基礎(chǔ)上做了二次開發(fā),游戲的cdn會(huì)根據(jù)游戲來變,根據(jù)需求多添加了個(gè)磁盤緩存,(實(shí)際上Okhttp已經(jīng)有了DisLruCache,但是不滿足需求,所以自己優(yōu)化了下并做了進(jìn)一步封裝)
可以給大家看下效果圖,有需要的話,可以私聊我要源碼,我就不開源了。

H5與Android混合調(diào)用
來重點(diǎn)了哈,為什么說是重點(diǎn)呢,因?yàn)橐鼋换チ耍霸O(shè)計(jì)的聚合SDK就可以用了呀,打包系統(tǒng)也可以用了。
技術(shù)方案分析:
在現(xiàn)有的游戲行業(yè)里面,H5游戲算是異軍突起的新潮流,在原有的行業(yè)做法都是打手游的SDK渠道打法,所以H5要發(fā)微端的話,上渠道打法也是渠道SDK,但是不是所有的渠道都有對(duì)應(yīng)的H5SDK,但是基本是所有的渠道都有客戶端的SDK,所以走微端的話,聚合SDK和打包系統(tǒng)是最方便的方案,H5游戲和手機(jī)游戲都可以適用同一套。
技術(shù)實(shí)現(xiàn)方案:
1、技術(shù)沉淀的SDK基礎(chǔ)上:聚合SDK和緩存庫SDK,只需要在現(xiàn)有的基礎(chǔ)上做一層與JS交互的封裝就可以了。要么把這兩個(gè)SDK直接給游戲項(xiàng)目組自己做交互,要么我們自己做封裝要求項(xiàng)目組前端按定義好的字段來做具體交互。
但是在實(shí)際操作中會(huì)發(fā)現(xiàn),第一種方式:項(xiàng)目組沒有專業(yè)的Android開發(fā),寫的代碼有點(diǎn)憂傷.... 第二種方式:將所有的交互接口定義好之后,后續(xù)拓展不太好,而且還得跟項(xiàng)目組的人對(duì)接,當(dāng)對(duì)接多個(gè)項(xiàng)目組或者CP的時(shí)候,排期啊,接口數(shù)據(jù)問題也會(huì)出來了。
2、有沒有更好的方式呢?答案是肯定的。SDK出一套H5聚合SDK接口,所有的交互邏輯及緩存邏輯都在SDK內(nèi)部完成,H5游戲只需要對(duì)接對(duì)應(yīng)的H5SDK接口就可以了。因?yàn)樯婕暗脚cJS交互這塊,我就不細(xì)講了,大家可以自己完成。
結(jié)語
祝大家生活愉快。
如果覺得我的文章對(duì)你有幫助,請(qǐng)隨意贊賞。您的支持將鼓勵(lì)我繼續(xù)創(chuàng)作!