如何在 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 文档工具