cocos2d-lua/js中錯誤彈窗

samael發表於2015-08-02

需求

最近在使用lua製作一款手遊。雖然lua支援熱更新程式碼,但是讓策劃們玩的出錯之話沒有辦法去復現當時是什麼情況出現的,於是就製作了一個簡單的報錯彈窗功能,出錯時可以把遊戲當時的截圖發給開發方便進行除錯。

原理

其實js與lua的原理都差不多都當執行環境中發生錯誤時通過一個函式回到C++的環境中進行處理。

在jsb中是:

cpp JS_SetErrorReporter(context, callFunc);

lua有些不一樣,當執行出錯時會先呼叫

lua __G__TRACKBACK__(errorMsg)

然後去呼叫事先註冊好的函式

再回到C++的環境進行處理(需要註冊一個處理函式回撥到C++進行處理)

注意:

實現彈窗要使用Native的開發語言,也就是android與ios都要實現一份,因為cocos2d-x的程式已經掛掉了。

實現

程式碼比較簡單,這裡只是實現一下示意圖

執行效果

相關文章