摘要:眼下小游戲特別火,不少團隊也陸續啟動了微信小游戲的項目,并于立項前期進行技術預研究。但從微信官方文檔看卻能發現不少坑。對微信小游戲和瀏覽器之間的運行環境差異無感知,非常友好。微信小程序要求開發者的服務器支持協議。
眼下小游戲特別火,不少團隊也陸續啟動了微信小游戲的項目,并于立項前期進行技術預研究。但從微信官方文檔看 , 卻能發現不少坑。
一、運行環境的坑1.API兼容性
1.1、網絡API
BOM的核心是windows,表示的是一個瀏覽器的實例,在網頁中自定義的任何一個對象、變量和函數,都以windows作為其全局對象;缺乏Dom意味著http、websocket及本地存儲等通信用的API使用就會遇到問題,好在微信提供了這兩個API的私有實現,我們要做的就是適配。
適配的基本思路是檢測是否是運行再微信平臺,然后利用JS動態語言特性, 對BOM的API進行動態重寫 , 優缺點如下:
1、優點是API調用者無需做任何改動,適配成本幾乎為0。對微信小游戲和瀏覽器之間的運行
環境差異無感知,非常友好。
2、缺點是會增加代碼體積,但代碼體積的增加帶來的損失幾乎可以忽略不計。
這種適配方案的性價比很高, 適配HTTP代碼示例如下:
1.2、微信的模塊化
微信小游戲提供了 CommonJS 風格的模塊 API,可以通過 module.exports 和 exports 導出模塊,通過 require 引入模塊 . 這與瀏覽器引入JS文件的方式截然不同 , 中間有一個隔離層。
讓我們舉個例子來說明模塊化帶來的問題。
通常我們在瀏覽器上使用某個js文件里面自定義的類,通過
標記可以直接使用。
但在微信中不可以這樣.需要把API都導入到一個對象上,使用時在加這個前綴.導致很多代碼需要修改,那么如何避免增加這個前綴呢?
針對這種情況 , 解決的思路是將所有外部需要用到的方法和對象動態掛靠到window對象上去,將上面的代碼稍做修改示例如下:
工作流變化
由于微信小游戲沒有Dom和Bom,所以很多依賴Dom和Bom的庫都不能直接用,比如 jquery。
微信的這套環境會或多或少會引起我們的工作流變化,使用第三方游戲開發引擎(比如Cocos Createor/Egret/Laya)可以彌補這些問題帶來的損失。
1、每個小游戲允許上傳的代碼包總大小為 4MB。
解決方法1:壓縮js文件,圖片資源放在服務器上做預加載。
解決方法2:使用第三方引擎的資源管理功能。
2、微信小程序要求開發者的服務器 支持https,wss協議。
解決方案:服務器啟用HTTPS。實現的方式有很多,推薦Nginx反向代理。
小游戲開發完成后發布上線需要具備如下的資格:
1: 服務器域名備案
2: https wss支持
3: 軟件著作權證書 復印件+蓋章簽名
4: 微信公眾平臺帳號及AppID
5: 開發者工具wechat_devtools_1.02.1803210_x64
6: 游戲自審報告復印件+簽名
7: iOS開發中帳號(可選,沒有則填空)
8: 游戲版號(開通微信支付需要)
9:企業開發者身份+對公帳號(開通微信支付需要)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107797.html
摘要:接下來說說我踩過的那些坑布局版本兼容問題布局自提出之后,變化過好幾個版本標志標志標志新增了對項的規定草案階段兼容方案父級布局不用考慮其他屬性都對應相關的版本方案,目前項目中是只寫最新的方案,由自動添加兼容方案。 接觸H5項目后,開始了解到flex布局,功能非常之強大,用起來相當之舒服。基本的知識介紹就不說了,參考http://www.ruanyifeng.com/blo...。 接下來...
閱讀 2732·2021-11-11 17:21
閱讀 622·2021-09-23 11:22
閱讀 3587·2019-08-30 15:55
閱讀 1649·2019-08-29 17:15
閱讀 581·2019-08-29 16:38
閱讀 916·2019-08-26 11:54
閱讀 2516·2019-08-26 11:53
閱讀 2762·2019-08-26 10:31