天天看點

微信小遊戲開發指南(二)微信小遊戲常見問題解答

微信小遊戲的基礎技術限制(egret引擎)

  • 不允許操作 DOM、BOM、如果必須改成小遊戲相應的 API 調用方式,目前引擎會自動引入weapp-adapter.js 檔案做相容處理。
  • 不允許動态執行代碼的能力,eval、setTimeout 和 setInterval 函數的第一個參數不能為字元串,Function構造函數的參數不能為字元串。
  • 關于小遊戲體積問題,小遊戲的體積不得大于 4M,緩存不得大于 50M。具體的解釋為:
    1. 本地的代碼和資源不得超過 4M。
    2. 單個小遊戲項目緩存的檔案不能超過 50M,目前當緩存超過 50M 時後續的資源将不會緩存,未來新版的 AssetsManager 将會允許開發者自定義哪些資源需要緩存的機制。
    3. 不允許從伺服器下載下傳腳本檔案。

我在使用白鹭引擎 5.0 / 4.x / 3.x 版本,可以直接轉換為微信小遊戲麼?

答:目前我們隻支援白鹭引擎 5.1.x 版本釋出為微信小遊戲,推薦您使用最新的 5.1.2 版本。更新教程

我在使用 egret res 庫,5.1.2 建立的新項目使用的是 assetsmanager 庫,這兩個庫有差別麼?

答:assetsmanager 是 res 的替代方案,這兩者的 API 有 90% 保持一緻,但是仍然有一些小差別,主要是在 RES.Analyzer 上,如果您遇到了相關問題,您可以在 egretProperties.json 中修改子產品配置,從 assetsmanager 修改回 res 并執行 egret clean ,這樣就可以換成 res 資源管理庫了。更改如圖所示:

微信小遊戲開發指南(二)微信小遊戲常見問題解答

微信開發者工具無法識别項目或者無法讀取 manifest.js 檔案

答:請確定您的微信開發者工具版本是 v1.02.1712280下載下傳連接配接,遇到識别項目或者無法讀取manifest.js 檔案問題時先寫檢查下版本是不是太低導緻的

egret 設定橫屏後微信小遊戲不生效:

答:需要在微信小遊戲的項目中找到 game.json 檔案,deviceOrientation 參數設定為 landscape,更多設定參考官方文檔,如圖:

微信小遊戲開發指南(二)微信小遊戲常見問題解答

下一引擎版本将會自動切換螢幕旋轉模式

當老項目(5.1.2以前)升到到最新版時,釋出小遊戲項目報錯:

答:更新成功後,請首先保證 HTML5 版本可以正常運作,然後再嘗試釋出為微信小遊戲,目前我們遇到了多位開發者通過建立 5.1.2 新項目後拷貝老項目代碼和素材的方式嘗試更新,由于忽視了修改 egretProperties.json 中的子產品配置,導緻運作失敗的問題。更新教程

在遊戲使用到 egret.getDefinitionByName() 報錯,找不到對應類時:

答:需要将要反射的類挂載到 window 對象下,例如有個 class People{} 類,需要添加代碼 window[“People”] = People。示例demo下載下傳

在 EUI 中使用自定義元件,釋出到微信小程式的 default.thm.js 報錯提示找不到自定義元件,錯誤如圖:

微信小遊戲開發指南(二)微信小遊戲常見問題解答

答:參考上一條回答,需要将自定義元件暴露到全局作用域。

在小遊戲中報錯 “Main is not defined” 時,

答:請檢視遊戲的入口類名是否為 Main,如不是請修改為 Main。

找不到 “不檢驗安全域名、TLS 版本以及 HTTPS 證書” 時如何解決:

答:目前可以在 project.config.json 中手動設定 urlCheck 為 false。

第三方庫 Proto Buffer 微信小遊戲中使用報錯:

答: 因為 protobuf.js 内部包含了加載的邏輯,這部分邏輯需要适配到微信小遊戲的 API 才可以使用,目前正在解決這個問題。

在小遊戲中播放聲音停止後,立即播放會導緻沒有聲音:

答:播放的聲音停止後延遲 100ms 再進行播放。

短音效(長度小于 1s 的音效)連續播放會有卡頓、播放不出來等問題:

答:目前隻能避免這種使用方式,我們正在和微信團隊配合,争取盡快解決這個問題。

使用 navigator.userAgent 在小遊戲中擷取資訊時無論是什麼手機的傳回值都是一樣的 ‘Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E8301 MicroMessenger/6.6.0 MiniGame NetType/WIFI Language/zh_CN’,

答:目前請暫時避免這種使用方式,這個問題已經回報給微信團隊。

開發者已經安裝了最新版微信開發工具,但是執行 egret run –target wxgame 指令時還是提示請安裝最新版開發者工具。

答:請開發者檢查下自己的作業系統是否是 32位 Windows,這是 5.1.2 版本在 32位 Windows系統上的 BUG,我們會盡快修複,在此之前,建議開發者使用 egret publish –target wxgame 釋出後,手動使用微信開發者工具打開。

繼續閱讀