微信小遊戲開新手攻略

Creator星球「脫貧實驗室」有不少夥伴開始實踐微信小遊戲,遇到一些問題,在這裏簡單總結並回復大家。

1. 開發微信小遊戲需要版號嗎?

開發微信小遊戲不需要版號,但需要《計算機軟件著作權登記證書》,簡稱“軟著”,看下圖:

640?wx_fmt=jpeg

在淘寶上也有很多代辦軟著,我這個就是找朋友代辦的,一個月拿到手,費用是800元,如果要加急的話價格會貴些。同時在辦理時還需要填寫一些個人的資料,20頁的軟件說明書Word文檔,60頁的源代碼,你不提供這些也可以,代辦可以幫助你搞定,不過價格自然會上漲一些。

2. 開發微信小遊戲需要企業嗎?註冊爲開發者要花300塊錢是吧?

不需要,到微信公衆號平臺(https://mp.weixin.qq.com)申請一個小程序公衆號就可以了。 640?wx_fmt=png

註冊個人小程序公衆號是全免費的,使用微信雲基礎服務也是免費的,不用花一分錢。

個人小程序公衆號是不能認證的,企業纔可以,因此也不用交300元錢smiley_20.png

4. 微信小遊戲開發和安卓端開發區別大麼?

在遊戲內容上是沒區別的,主要是在平臺接入和打包上:

  1. 平臺接入:微信小遊戲你需要接入微信SDK做授權登錄、加載廣告、好友排行...如果只是做微信小遊戲,可直接使用就行。如果要兼容android上的其它平臺接入,你可能需要做一箇中間層來適配不同的平臺登錄、廣告、支付等等...

  1. 打包:使用Cocos Creator打包微信小遊戲,輸出的是H5遊戲資源,以及微信小遊戲的專用配置。Android打包除了遊戲資源以外還有Cocos2d-x原生部分,以及Android Studio工程,還需要用它生成Android安裝包。也就是說微信小遊戲只需要構建,而Android需要構建並編譯。

5. 微信小遊戲登錄,網上的沒看懂,請問有沒有參考項目?

微信小遊戲授權登錄是爲了獲取用戶基本信息包括:暱稱、頭像url、openid

要獲得上面這些信息,需要經得用戶同意。這些信息是社交排行榜不可缺少的,如果你的是純單機遊戲沒有排行,可以不用授權登錄。

我這邊的瞭解,微信提供了兩個步驟獲取授權的方式:

1. 本地授權登錄:使用 wx.createUserInfoButton API創建一個按鈕讓用戶點擊,彈出登錄授權提示,看下圖: 

640?wx_fmt=png

下面是API的參數用法:

//創建登錄按鈕
let button = wx.createUserInfoButton({
    type: 'text'   //按鈕是用文字還是圖片
    image: '',     //指定圖片url
    text: imgUrl ? '' : '登錄', //指定按鈕文字
    style: {
        left: left,         //按鈕位置左上角爲0,0點
        top: top,           //按鈕位置左上角爲0,0點
        width: width,       //按鈕寬度
        height: height,     //按鈕高度
    }
});

//創建出來默認是隱藏的,使用show()方法顯示出來
button.show();

//監聽按鈕點擊事件
button.onTap((userInfoRes) => {
    console.log("獲取到的UserInfo:", userInfoRes);
    if (userInfoRes.errMsg.indexOf('fail') != -1) {
        AdapterApi.showModal('提示', '請點擊允許按鈕');
        return;
    }
    //獲取用戶信息
    let nickName = userInfoRes.userInfo.nickName;
    let avatarUrl = userInfoRes.userInfo.avatarUrl;
    button.hide();
});

獲取到的用戶信息如下圖所示:

640?wx_fmt=png

2. 獲取用戶openid, 需要通過後臺服務器,看官方文檔: 

640?wx_fmt=png

上圖中的方式是自己搭建服務器獲取用戶授權,取得用戶openid的過程,看起來非常繁瑣,如果你使用的是微信雲,流程就簡單多了,看下面代碼:

wx.cloud.callFunction({
    name: 'getOpenid',  //調用雲開發的getOpenid函數
    success: (res) => {
        cc.log(res.result.openid);
    },
    fail: (err) => {
        cc.log(err);
    }
})

上面這段代碼是在調用微信雲函數:getOpenid,通過success\fail回調獲取成功、失敗。

我們還需要在微信雲上實現這個getOpenid函數,看下面代碼:

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event) => {
    const { ENV, OPENID, APPID } = cloud.getWXContext()
    // 更新默認配置,將默認訪問環境設爲當前雲函數所在環境
    cloud.updateConfig({
        env: ENV
    })
    // ...
    return {
        env: ENV,
        openid: OPENID,
        appid: APPID,
    }
}

這段代碼是直接從官方文檔中抄過來的,部署到微信雲上即可, 我這裏編寫了4個雲函數,看下圖: 

640?wx_fmt=png

新增加雲函數需要上傳部署環境:

640?wx_fmt=png

以後做修改直接增量上傳即可:

640?wx_fmt=png

以上是今天的分享,希望對你有所幫助,願在微信小遊戲的副業之路上我們攜手同行!

◈◈◈原創熱文◈◈◈

  1. Creator星球遊戲開發社區「脫貧實驗室No.1」

  2. 時間管理實踐 | 爲什麼我有那麼多時間寫公衆號?

  3. 項目經理特戰訓練 | 靈魂拷問:你是什麼垃圾?

  4. 微信小遊戲&雲開發 | 72小時極限編程體驗

  5. 從“新手引導”到“自動化測試”

  6. CreatorPrimer 30篇教程彙總

  7. 微信小遊戲,個人開發者還可以上嗎?

  8. 遇見未知的自己,奎特爾成長之路!

  9. 星星愛消除,浪漫七夕節—約會表白神器!

  10. 「奎特爾星球」公衆號資源集合

640?wx_fmt=png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章