Egret白鹭开发微信小游戏程序跳转功能(由一个小游戏跳转到另一个小游戏)

Stella981
• 阅读 685

假设我们要实现的功能是从小游戏A跳转到小游戏B

对于小游戏A:

(1)在platform.ts中添加代码如下:

Egret白鹭开发微信小游戏程序跳转功能(由一个小游戏跳转到另一个小游戏)

/** 
 * 平台数据接口。
 * 由于每款游戏通常需要发布到多个平台上,所以提取出一个统一的接口用于开发者获取平台数据信息
 * 推荐开发者通过这种方式封装平台逻辑,以保证整体结构的稳定
 * 由于不同平台的接口形式各有不同,白鹭推荐开发者将所有接口封装为基于 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的方法

Egret白鹭开发微信小游戏程序跳转功能(由一个小游戏跳转到另一个小游戏)

    //跳转
        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中添加代码如下:

Egret白鹭开发微信小游戏程序跳转功能(由一个小游戏跳转到另一个小游戏)

  navigateToMiniProgram() {
    return new Promise((resolve, reject) => {
      wx.navigateToMiniProgram({
        appId: 'wxcaa5b0bc1f60c1a1',
        path: '',
        extraData: {},
        envVersion: 'develop',
        success(res) {
          // 打开成功
          console.log("跳转成功了。。。");
        }
      })
    })
  }

注意: appId填将要跳转到的微信小游戏的ID

(4)在game.json中配置需要跳转的小程序的AppId,如下:

Egret白鹭开发微信小游戏程序跳转功能(由一个小游戏跳转到另一个小游戏)

"navigateToMiniProgramAppIdList": [
        "wx423487eff0d25e65",
        "wx0706950c2e35f971",
        "wxcaa5b0bc1f60c1a1",
        "wx57652bd7c9253521",
        "wxccd61b9d7ccaae4d"
    ]

对于小游戏B:

使用微信开发工具打开小游戏B项目,在index.js中添加代码如下:

Egret白鹭开发微信小游戏程序跳转功能(由一个小游戏跳转到另一个小游戏)

Page({
  onLoad: function (options) {
    console.log(options)
  }
})
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
three.js
第1章课程介绍介绍了微信小游戏的概念以及相关的由来,从宏观上对于微信小游戏的定位和价值有一个明确的认识第2章微信小游戏平台与特性讲了微信小游戏平台的相关特性,包括微信小游戏工程的建立,微信小游戏开发工具的详细使用,以及微信小游戏相关API的实战等第3章THREEJS与WebGL核心概念通过理论和实战,讲解了什么是webgl、什
Stella981 Stella981
3年前
Protobuf在微信小游戏开发中的使用技巧
微信小游戏发布后,许多HTML5游戏开发者希望把现有的HTML5游戏迁移到微信小游戏中,但由于一些技术上的问题导致进程卡壳。通过梳理Egret社区、白鹭小游戏开发技术讨论群等途径的反馈后发现,有不少开发者遇到的难题在于「如何在微信小游戏中使用Protobuf」。白鹭引擎架构师王泽在近期发布了一个开源项目protobufegret,提供了一个可
Stella981 Stella981
3年前
Android微信跳一跳,自动跳App实现
微信小游戏跳一跳刚推出,不错,简单好玩!但是程序员最烦的就是一直重复做一件事情,所以,能不能自动跳一跳?元旦放假,研究了一下,具体思路分享给大家。先上图!(https://static.oschina.net/uploads/space/2018/0102/090017_DL1U_223115.jpg)图像识别和处理使用的是o
Stella981 Stella981
3年前
Linux下的小游戏
Linux下的小游戏非常丰富,除了有扫雷、纸牌等Windows下常见小游戏外,还有一些富有Linux特色的游戏,如数独、gbrainy等智力游戏。我们今天要介绍的是为众人喜闻乐见、容易上手的小游戏:五子棋、中国象棋、麻将连连看、宝石迷阵。1.五子棋。在“Ubuntu软件中心”里搜索bovo,安装即可。点击“新建”,即可开始新游戏。右下角选择难度。
Stella981 Stella981
3年前
Egret白鹭开发微信小游戏分享功能
今天给大家分享一下微信分享转发功能,话不多说,直接干方法一:1.在egret中打开Platfrom.ts文件,添加代码如下(当然,你也可以直接复制粘贴)/平台数据接口。由于每款游戏通常需要发布到多个平台上,所以提取出一个统一的接口用于开发者获取平台数据信息推荐开发者通过这种方
Wesley13 Wesley13
3年前
JAVA游戏编程学习笔记(四)Java PinBall 简单弹球小游戏【1】
之前写了一个非常简单的Java2D小游戏底层框架,为了把这个游戏框架丰富起来,这阵子需要实际完成几个小游戏代码,这样才能在实际中检验游戏框架使用性!先来一个简单的小游戏:JavaPinBall简单弹球小游戏 先上图!!(http://static.oschina.net/uploads/space/2015/1110/202955_
Stella981 Stella981
3年前
LayaAir:用3D项目演示老项目如何适配微信小游戏
在QQ上线玩一玩后,引擎部同事彻夜鏖战,刚刚终于上线了1.7.15beta版。推出了QQ玩一玩与微信小游戏的一键发布功能。小编送上一篇刚出炉的技术干货,希望能给开发者带来帮助。之前有介绍过微信小游戏的创建与调试全流程,从1.7.15beta开始,这个流程更加完善,尤其是TS与JS的开发者,也可以做到一键发布微信小游戏了。本篇尽可