如何在 Egret 中調用小遊戲 API
在 Egret 中是能夠直接調用小遊戲的 API 的,這篇文檔簡要介紹如何在 Egret 中使用小遊戲的 API。
新增 platform.ts 文件
在 src 下新增 platform.ts,代碼以下微信
1. /** 2. * 平臺數據接口。 3. * 因爲每款遊戲一般須要發佈到多個平臺上,因此提取出一個統一的接口用於開發者獲取平臺數據信息 4. * 推薦開發者經過這種方式封裝平臺邏輯,以保證總體結構的穩定 5. * 因爲不一樣平臺的接口形式各有不一樣,白鷺推薦開發者將全部接口封裝爲基於 Promise 的異步形式 6. */ 7. declare interface Platform { 8. 9. getUserInfo(): Promise<any>; 10. 11. login(): Promise<any> 12. 13. } 14. 15. class DebugPlatform implements Platform { 16. async getUserInfo() { 17. return { nickName: "username" } 18. } 19. async login() { 20. 21. } 22. } 23. 24. 25. if (!window.platform) { 26. window.platform = new DebugPlatform(); 27. } 28. 29. 30. 31. declare let platform: Platform; 32. 33. declare interface Window { 34. 35. platform: Platform 36. }
這樣就能夠在 Egret 項目中使用 platform 裏的方法了。可是若是咱們當前的項目想要發佈成 H5 遊戲的話也不會報錯,保證整個項目的兼容性。
新增 platform.js 文件微信開發
經過文末的 小遊戲 API 文檔,咱們能夠方便的查看使用小遊戲 API。
咱們 platform.js 代碼編寫以下異步
1. /** 2. * 請在白鷺引擎的Main.ts中調用 platform.login() 方法調用至此處。 3. */ 4. 5. class WxgamePlatform { 6. 7. name = 'wxgame' 8. 9. login() { 10. return new Promise((resolve, reject) => { 11. wx.login({ 12. success: (res) => { 13. resolve(res) 14. } 15. }) 16. }) 17. } 18. 19. getUserInfo() { 20. return new Promise((resolve, reject) => { 21. wx.getUserInfo({ 22. withCredentials: true, 23. success: function (res) { 24. var userInfo = res.userInfo 25. var nickName = userInfo.nickName 26. var avatarUrl = userInfo.avatarUrl 27. var gender = userInfo.gender //性別 0:未知、1:男、2:女 28. var province = userInfo.province 29. var city = userInfo.city 30. var country = userInfo.country 31. resolve(userInfo); 32. } 33. }) 34. }) 35. } 36. } 37. 38. 39. window.platform = new WxgamePlatform();
上述代碼使用了小遊戲的登錄 API,只須要在 Egret 項目中調用 platform.login() 方法便可。async
引入 platform.js
可是在真正運行以前還須要將 platform.js 文件引入進去
調用小遊戲的 API
最後只須要在你須要的地方添加方法就可了,搞定!
運行發現沒有效果,由於我剛纔已經登錄過了,因此選擇清除登陸狀態。
而後運行,搞定!
小結
由於上述過程 5.1.2 版本都已經集成,項目默認會有一個登錄方法的示例,你們能夠按照示例使用其它的小遊戲 API,爲了保證最好的體驗咱們元旦回來後再進行更新,感謝你們一直以來的支持。
小遊戲 API 調用注意事項
由於小遊戲 API 運行須要小遊戲環境,因此在 H5 上是沒法直接預覽的,因此你須要在「微信開發者工具」中預覽效果。
更多 API 請查看:小遊戲 API 文檔工具