1. 程式人生 > >Egret -- Egret 微信小遊戲API呼叫

Egret -- Egret 微信小遊戲API呼叫

在Egret中是可以直接呼叫微信小遊戲的API的,Egret中添加了平臺程式碼,可以呼叫各個平臺API。

該章效果如下:
這裡寫圖片描述
一、新建工程會發現在src資料夾中會包含一個Platform.ts的檔案,如果沒有請建立。

/** 
 * 平臺數據介面。
 * 由於每款遊戲通常需要釋出到多個平臺上,所以提取出一個統一的介面用於開發者獲取平臺數據信息
 * 推薦開發者通過這種方式封裝平臺邏輯,以保證整體結構的穩定
 * 由於不同平臺的介面形式各有不同,白鷺推薦開發者將所有介面封裝為基於 Promise 的非同步形式
 */
declare interface Platform {
    getUserInfo(): Promise<any>;
    login(): Promise<any>
}
class
DebugPlatform implements Platform {
async getUserInfo() { return { nickName: "username" } } async login() { } } if (!window.platform) { window.platform = new DebugPlatform(); } declare let platform: Platform; declare interface Window { platform: Platform }

並將程式碼拷貝到Platform.ts中。

二、打包釋出微信工程,並在微信開發者工具中開啟,可以看到platform.js檔案,若沒有,請建立platform.js檔案。微信的其他介面也要寫到該檔案中,分享、微信點選進入等。

/**
 * 請在白鷺引擎的Main.ts中呼叫 platform.login() 方法呼叫至此處。
 */

class WxgamePlatform {
    name = 'wxgame'
    login() {
        return new Promise((resolve, reject) => {
            wx.login({
                success: (res) => {
                    resolve(res)
                }
            })
        })
} getUserInfo() { return new Promise((resolve, reject) => { wx.getUserInfo({ withCredentials: true, success: function (res) { var userInfo = res.userInfo var nickName = userInfo.nickName var avatarUrl = userInfo.avatarUrl var gender = userInfo.gender //性別 0:未知、1:男、2:女 var province = userInfo.province var city = userInfo.city var country = userInfo.country resolve(userInfo); } }) }) } openDataContext = new WxgameOpenDataContext(); } class WxgameOpenDataContext { createDisplayObject(type,width,height){ const bitmapdata = new egret.BitmapData(sharedCanvas); bitmapdata.$deleteSource = false; const texture = new egret.Texture(); texture._setBitmapData(bitmapdata); const bitmap = new egret.Bitmap(texture); bitmap.width = width; bitmap.height = height; egret.startTick((timeStarmp) => { egret.WebGLUtils.deleteWebGLTexture(bitmapdata.webGLTexture); bitmapdata.webGLTexture = null; return false; }, this); return bitmap; } postMessage(data){ const openDataContext = wx.getOpenDataContext(); openDataContext.postMessage(data); } } window.platform = new WxgamePlatform();

Platform聲明瞭平臺函式,在egret中可以直接呼叫,在各個平臺中實現程式碼即可。

三、在egret中呼叫登陸,並獲取微信使用者資訊。在main.ts中寫入如下程式碼。

await platform.login()呼叫登陸API,
const userInfo = await platform.getUserInfo();獲取微信使用者資訊,並返回使用者資訊,
await 非同步呼叫,返回呼叫結果在執行下一步。

class Main extends egret.DisplayObjectContainer {

    public constructor() {
        super();
        this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
    }

    private onAddToStage(event: egret.Event) {
        this.runGame().catch(e => {
            console.log(e);
        })
    }

    private async runGame() {
        await platform.login();
        const userInfo = await platform.getUserInfo();
        this.createGameScene(userInfo);
    }

    private textfield: egret.TextField;

    /**
     * 建立遊戲場景
     * Create a game scene
     */
    private createGameScene(userInfo: any) {

        let bg: eui.Rect = new eui.Rect();
        this.addChild(bg);
        bg.width = this.stage.width;
        bg.height = this.stage.height;
        bg.fillColor = 0xF8F8F8;

        let avatar: eui.Image = new eui.Image();
        avatar.x = 100;
        avatar.y = 100;
        avatar.width = 120;
        avatar.height = 120;
        avatar.source = userInfo.avatarUrl;
        this.addChild(avatar);

        let nickName: eui.Label = new eui.Label();
        nickName.x = 100;
        nickName.y = 250;
        nickName.textColor = 0xff0000;
        nickName.text = userInfo.nickName;
        this.addChild(nickName);
    }
}

打包微信工程,並在開發者工具開啟。執行獲取到微信使用者資訊。

相關推薦

Egret -- Egret 遊戲API呼叫

在Egret中是可以直接呼叫微信小遊戲的API的,Egret中添加了平臺程式碼,可以呼叫各個平臺API。 該章效果如下: 一、新建工程會發現在src資料夾中會包含一個Platform.ts的檔案,如果沒有請建立。 /** * 平臺數據介面。 *

Egret遊戲初體驗

Egret 微信 小遊戲 一 : 首先介紹2個命令: ①:發布小遊戲 egret public --target wxgame ②:用微信開發者工具打開 egret run --target wxgame 二 : 步驟 ① : 使用egret 5.1.2及其以上的版本創建一個EUI的遊戲項目我使用

Egret遊戲基礎Bug修復

Egret 微信小遊戲 小遊戲 問題 基礎 一 : 第三方類庫未定義如 : smallLib類庫 解決方案: 找到wxgame.ts , 在onFile方法中加入 if(filename == "libs/modules/smallLib/smallLib.j

Egret 生成 自帶EUI 的遊戲 踩坑!

end custom 點擊 ati gre faq commonjs require IE 1. 首先,再次被網上一大堆屎一樣的資料搞得浪費了我一天時間。各種坑。 2. 本文先講一種正確的方式,然後再列舉坑。 去www.egret.com下載最新的引擎,我的最新版

Egret遊戲轉發、分享等功能實現

http://bbs.egret.com/thread-50904-1-1.html 這是官方教程的實現。 1. 需要在Platform.ts裡呼叫platform.js介面。 2. 在Main.ts通過Platform.ts呼叫執行函式 。 3. 在 platform.js寫相對應的邏

Egret遊戲好友排行榜教程

https://mp.weixin.qq.com/s/kYIdnHv-C5KuR9snekPNBg https://mp.weixin.qq.com/s/PA2sfcGxNfix7sJ8ysy9AA 官方文件。 https://www.jianshu.com/p/600543c4be

白鷺引擎egret打包成遊戲

1、匯入專案以後開啟檔案egretproperties.json修改target 下面的current的web為wxgame r   然後點開打包   在這裡填寫微信小遊戲id以及命名,打包成功以後,即可用微信開發者工具來允許,如果報錯請把縮放模式改成f

egret釋出到遊戲的一些坑

2018年11月14日 11:18:39 yohoj 閱讀數:7 標籤: egret

Egret exml在遊戲這塊兒的坑

知識點: 微信小遊戲不支援eval等方法動態呼叫js指令碼 egret自定義元件暴露在全域性,但是導成微信小遊戲工程的時候必須要將類掛載到window上,可以在srcipts/wxgame/wxgam

Egret遊戲登入授權

getUserInfo(left, bottom) { return new Promise((resolve, reject) => { let sysInfo = wx.getSystemInfoSync(); let sdkVersion

egret遊戲在本地使用者檔案目錄下建立檔案並讀取內容

Platform.ts新增 declare interface Platform { getUserInfo(): Promise<any>; login(): Promise<any> getFileData(fi

【備忘】2018年最新遊戲開發 ES6+遊戲api開發視訊教程下載

1) 課程介紹、環境開發搭建2) 微信小遊戲開發原理與JS面向物件3) 微信小遊戲邏輯梳理與API介紹4) 微信小遊戲主體開發5) 微信小遊戲音樂和振動API,獲取使用者資訊,設定和登入API,網路請求之HTTP,WebSocket,檔案下載等API詳解6) 課程總結與展望

如何在程式中呼叫騰訊地圖api

微信小程式的地圖api是非常有限的,如果要搜尋地圖上的位置,比如附近的醫院、學校等,就需要使用地圖api,使用騰訊地圖api的過程如下:一、開發者申請騰訊地圖驗證完手機郵箱之後,就可以申請開發者金鑰    並解壓,然後將其解壓放入你的微信小程式開發目錄的util中,這個壓縮檔

呼叫程式API生成二維碼 並轉base64存資料庫

public class GeneralTokenUtil {     private static final String appid = "";     private static final String grant_type = "";     // 獲取to

程序API接口

delete func data- nec soft 服務 res data ole 微信小程序API接口 wx.request(OBJECT) wx.request發起的是 HTTPS 請求。 OBJECT參數說明: url->開發者服務器接口地址->St

農場莊園遊戲開發,遊戲商城開發

深圳市龍火科技有限公司(SHENZHEN DRAGON FIRE TECHNOLOGY CO.LTD.),專業為企業提供一站式手機APP軟件開發,移動APP推廣服務,包括ANDROID APP開發,IOS APP開發,企業APP定制服務,同時提供全的APP開發流程一記開發方案。 龍火科技自成立以來,以為

遊戲開發

微信小遊戲開發 遊戲開發 棋牌遊戲開發 嗨。。老板你是不是想找公司開發遊戲項目? 我們就是你一直想找的公司,在此懇請老總你認真看看我的介紹 看是否有你想開發項目,歡迎加我v 信視頻了解我公司能力。 專業開發大型3D遊戲軟件; 定制開發任意模式的系統軟件棋 牌果園莊園牧場遊戲 。聯系方式:

遊戲開發,分銷系統定制開發

微信小遊戲 棋牌遊戲 分銷系統定制 ● 深圳市龍火科技有限公司專業為企業提供一站式手機APP軟件開發,移動APP推廣服務,包括ANDROID APP開發,IOS APP開發,企業APP定制服務,同時提供最全的APP開發流程以及開發方案。 ● 龍火科技自成立以來,已為

.net開發 遊戲跳一跳輔助程序

strong 系統 圖片 src 路徑 div net開發 微信 計算 一次巧合我看到了一篇關於微信小遊戲跳一跳的輔助開發源碼,鏈接:http://mp.weixin.qq.com/s/qGpoHNEf1A2AlofKFVdE2w 然後我試著下載下來跑一遍看能不能運行,

玄武大廳平臺出租遊戲「跳一跳」技術手段高分秘籍實現

實現 forum 文章 沒有 好玩 鏈接 .com 微信 新版 最近這兩天,從微信最新版內測開始,到正式版發布,玄武大廳平臺出租(h5.hxforum.com)企鵝2952777280 源碼出售 房卡出售 後臺出租微信小程序的遊戲:跳一跳,可以說是火爆了微信好友圈。甚至比五