Egret白鷺開發微信小游戲程序跳轉功能(由一個小游戲跳轉到另一個小游戲)


假設我們要實現的功能是從小游戲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)
  }
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM