japanesexxxx护士_91精品国产高跟肉丝袜在线_狠色狠狠色狠狠狠色综合久久_三级国产日产

資訊動態

微信小程序游戲關系鏈數據API接口使用指南

日期:2018-03-23 作者:管理員 來源:本站

微信小游戲是小程序的一個類目,微信用戶完成微信小程序注冊后,可選擇“游戲”類目并開始開發及調試微信小游戲【珠海微信小程序建設電話】,為了豐富微信游戲的社交玩法,微信團隊提供了獲取關系鏈數據的API接口,可獲取當前用戶也玩該小游戲的好友的用戶數據。

珠海微信小程序建設:微信小程序游戲關系鏈數據API接口使用指南

珠海微信小程序建設:微信小程序游戲關系鏈數據API接口使用指南

微信小游戲接入指南

注冊小程序帳號:在微信公眾平臺官網首頁(mp.weixin.qq.com)點擊右上角的“立即注冊”按鈕。

選擇注冊的帳號類型:選擇“小程序”,點擊“查看類型區別”可查看不同類型帳號的區別和優勢。

填寫郵箱和密碼:請填寫未注冊過公眾平臺、開放平臺、企業號、未綁定個人號的郵箱。

激活郵箱:登錄郵箱,查收激活郵件,點擊激活鏈接。

填寫主體信息:點擊激活鏈接后,繼續下一步的注冊流程。請選擇主體類型選擇,完善主體信息和管理員信息。

填寫主體信息并選擇驗證方式:企業類型帳號可選擇兩種主體驗證方式。 方式一:需要用公司的對公賬戶向騰訊公司打款來驗證主體身份。打款信息在提交主體信息后可以查看到。 方式二:通過微信認證驗證主體身份,需支付300元認證費。認證通過前,小程序部分功能暫無法使用。


關系鏈數據使用指南

一個微信用戶的關系鏈數據包括兩部分:

  • 該用戶好友的用戶數據

  • 該用戶所在的某個群的群成員的用戶數據。

為了豐富游戲的社交玩法,我們提供了獲取關系鏈數據的 API:

  • wx.getFriendCloudStorage() 獲取當前用戶也玩該小游戲的好友的用戶數據

  • wx.getGroupCloudStorage() 獲取當前用戶在某個群中也玩該小游戲的成員的用戶數據

這兩個 API 的返回結果都是一個對象數組,數組的每一個元素都是一個表示用戶數據的對象,其結構如下:

屬性 類型 說明
openId string 用戶的 openId
avatarUrl string 用戶的微信頭像 url
nickName string 用戶的微信昵稱
data Object 用戶的游戲數據

用戶的 游戲數據 指的是用戶的段位、戰績等游戲業務特有的數據,通過調用 wx.setUserCloudStorage() 可以將當前用戶的游戲數據托管在微信后臺。只有被托管過數據的用戶,才會被視為 玩過 該小游戲的用戶,才會出現在 wx.getFriendCloudStorage() 和 wx.getGroupCloudStorage() 返回的對象數組中。

除此之外,我們還提供了以下 API:

  • wx.removeUserCloudStorage() 刪除用戶托管數據中指定字段的數據

  • wx.getUserCloudStorage() 獲取當前用戶的托管數據

wx.getUserCloudStorage、wx.getFriendCloudStorage() 和 wx.getGroupCloudStorage() 只能在 開放數據域 中調用。
wx.setUserCloudStorage() 和 wx.removeUserCloudStorage() 可以同時在 主域 和開放數據域中調用。

開放數據域

開放數據域 是一個封閉、獨立的 JavaScript 作用域。要讓代碼運行在開放數據域,需要在 game.json 中添加配置項 openDataContext 指定開放數據域的代碼目錄。添加該配置項表示小游戲啟用了開放數據域,這將會導致一些 限制。

{ "deviceOrientation": "portrait", "openDataContext": "src/myOpenDataContext" }

同時還需要在該目錄下創建 index.js 作為開放數據域的入口文件,其代碼運行在開放數據域。game.js 是整個游戲的入口文件,其代碼運行在 主域。對應以上配置,應該有如下的目錄結構:

├── src  
|   └── myOpenDataContext
|       ├── index.js
|       └── ...
├── game.js
├── game.json
└── ...

src/myOpenDataContext 是 開放數據域的代碼目錄,除 src/myOpenDataContext 以外是 主域的代碼目錄。

主域和開放數據域中的代碼不能相互 require。以如下的目錄結構為例:

├── src  
|   └── myOpenDataContext
|       ├── index.js
|       ├── util.js
|       └── ...
├── lib
|   └── render.js
└── game.js

在 game.js 中不能 require('src/myOpenDataContext/util')
在 src/myOpenDataContext/index.js 中不能 require('../../lib/render.js')

主域和開放數據域的通信

開放數據域不能向主域發送消息。

主域可以向開放數據域發送消息。調用 wx.getOpenDataContext() 方法可以獲取開放數據域實例,調用實例上的 OpenDataContext.postMessage() 方法可以向開放數據域發送消息。

// game.js let openDataContext = wx.getOpenDataContext()
openDataContext.postMessage({
  text: 'hello',
  year: (new Date()).getFullYear()
})

在開放數據域中通過 wx.onMessage() 方法可以監聽從主域發來的消息。

// src/myOpenDataContext/index.js wx.onMessage(data => { console.log(data) /* {
    text: 'hello',
    year: 2018
  } */ })

展示關系鏈數據

如果想要展示通過關系鏈 API 獲取到的用戶數據,如繪制排行榜等業務場景,需要將排行榜繪制到 sharedCanvas 上,再在主域將 sharedCanvas 渲染上屏。


// src/myOpenDataContext/index.js let sharedCanvas = wx.getSharedCanvas() function drawRankList (data) {
  data.forEach((item, index) => { // ... })
}

wx.getFriendUserGameData({
  success: res => { let data = res.data
    drawRankList(data)
  }
})

sharedCanvas 是主域和開放數據域都可以訪問的一個離屏畫布。在開放數據域調用 wx.getSharedCanvas() 將返回 sharedCanvas。

// src/myOpenDataContext/index.js let sharedCanvas = wx.getSharedCanvas() let context = sharedCanvas.getContext('2d')
context.fillStyle = 'red' context.fillRect(0, 0, 100, 100)

在主域中可以通過開放數據域實例訪問 sharedCanvas,通過 drawImage() 方法可以將 sharedCanvas 繪制到上屏畫布。

// game.js let openDataContext = wx.getOpenDataContext() let sharedCanvas = openDataContext.canvas let canvas = wx.createCanvas() let context = canvas.getContext('2d')
context.drawImage(sharedCanvas, 0, 0)

限制

當小游戲啟動開放數據域,即在 game.json 中添加 openDataContext 配置項時。小游戲環境會對主域和開放數據域應用一些限制。

主域

  1. sharedCanvas 只能被繪制到上屏 canvas 上。

  2. 上屏 canvas 不能調用 toDataURL,其 context 不能調用 getImageData。

  3. sharedCanvas 不能調用 toDataURL 和 getContext。

  4. 不能將上屏 canvas 和 sharedCanvas 以任意形式繪制到其他 canvas 上,包括 drawImage、createPattern、texImage2D、texSubImage2D。

開放數據域

開放數據域只能調用有限的 API,如下所示:

幀率

  • requestAnimationFrame()

  • cancelAnimationFrame()

Timer

  • setTimeout()

  • clearTimeout()

  • setInterval()

  • clearInterval()

觸摸事件

  • wx.onTouchStart()

  • wx.onTouchMove()

  • wx.onTouchEnd()

  • wx.onTouchCancel()

  • wx.offTouchStart()

  • wx.offTouchMove()

  • wx.offTouchEnd()

  • wx.offTouchCancel()

畫布

  • wx.createCanvas()

開放數據域的所有 canvas 只支持 2d 渲染模式

圖片

  • wx.createImage()

開放數據域的 Image 只能使用本地或微信 CDN 的圖片,不能使用開發者自己服務器上的圖片。

開放數據

  • wx.getFriendCloudStorage()

  • wx.getGroupCloudStorage()

  • wx.getUserCloudStorage()

  • wx.setUserCloudStorage()

  • wx.removeUserCloudStorage()

監聽主域消息

  • wx.onMessage()


二維碼
掃二維碼手機查看該文章
當前網址:http://daago.cn/wechat/518.html

相關資訊

?
Copyright ? 2007-2024 珠海市網訊互聯信息科技有限公司 daago.cn 版權所有
粵公網安備44040202000391號 粵ICP備19117377號 網站地圖 站點地圖
在線客服