假設我們要實現的功能是從小游戲A跳轉到小游戲B
對於小游戲A:
(1)在platform.ts中添加代碼如下:
/** * 平台數據接口。 * 由於每款游戲通常需要發布到多個平台上,所以提取出一個統一的接口用於開發者獲取平台數據信息 * 推薦開發者通過這種方式封裝平台邏輯,以保證整體結構的穩定 * 由於不同平台的接口形式各有不同,白鷺推薦開發者將所有接口封裝為基於 Promise 的異步形式 */ declare interface Platform { getUserInfo(): Promise<any>; login(): Promise<any>; //調轉 navigateToMiniProgram():Promise<any>; } class DebugPlatform implements Platform { async getUserInfo() { return { nickName: "username" } } async login() { } async navigateToMiniProgram(){ } } if (!window.platform) { window.platform = new DebugPlatform(); } declare let platform: Platform; declare interface Window { platform: Platform }
(2)在main.ts中定義一個跳轉按鈕並調用platform.ts的方法
//跳轉 let stepBtn = new eui.Button(); stepBtn.label = "跳轉"; stepBtn.x=550; stepBtn.y=550; this.startPanel.addChild(stepBtn); stepBtn.addEventListener(egret.TouchEvent.TOUCH_TAP, ()=>{ platform.navigateToMiniProgram(); }, this);
(3)發布成微信小程序,使用微信開發工具打開,在platform.js中添加代碼如下:
navigateToMiniProgram() { return new Promise((resolve, reject) => { wx.navigateToMiniProgram({ appId: 'wxcaa5b0bc1f60c1a1', path: '', extraData: {}, envVersion: 'develop', success(res) { // 打開成功 console.log("跳轉成功了。。。"); } }) }) }
注意: appId填將要跳轉到的微信小游戲的ID
(4)在game.json中配置需要跳轉的小程序的AppId,如下:
"navigateToMiniProgramAppIdList": [ "wx423487eff0d25e65", "wx0706950c2e35f971", "wxcaa5b0bc1f60c1a1", "wx57652bd7c9253521", "wxccd61b9d7ccaae4d" ]
對於小游戲B:
使用微信開發工具打開小游戲B項目,在index.js中添加代碼如下:
Page({
onLoad: function (options) {
console.log(options)
}
})