uniapp开发App或小程序跳转小程序

2,146 阅读2分钟

背景

业务需求:uniapp开发时,App跳转小程序,小程序跳转小程序。

实现方法

1. uni.navigateToMiniProgram(小程序跳转小程序)

uni-app官方文档(uni.navigateToMiniProgram)

uni.navigateToMiniProgram({
  appId:""// 微信小程序id
  path: "", // 小程序页面路径,不填默认首页        
  extraData:{
        'data1': 'test'
  }, //传递给页面的参数
  success(res) {
  console.log("跳转成功");
  },
  fail(res) {
  console.log(res, "调用失败");
  }
});

2. launchMiniProgram实现(App跳转小程序)

官方文档(HTML5+ API launchMiniProgram)

plus.share.getServices(
  (res) => {
    let sweixin = res.find((i) => i.id === "weixin");
    if (sweixin) {
      sweixin.launchMiniProgram(
        {
          id: "", // 要跳转小程序的原始ID
          path: "", //  可带参数
          type: 0, // 微信小程序版本类型可取值: 0-正式版; 1-测试版; 2-体验版。 默认值为0。
        },
        // 目标小程序点击返回App后执行的回调,在此接收微信小程序传递的参数
        (res2) => {
          console.log(typeof res2, res2);
          // res2是微信小程序传递回来的参数 类型为string 需转化为js对象使用
          let result = JSON.parse(res2);
          console.log(result);
          // 拿到参数后执行你需要的逻辑
        },
        (err2) => {
          console.log(err2);
        }
      );
    } else {
      showToast("当前环境不支持微信操作!");
    }
  },
  (err) => {
    console.log(err);
  }
);

3. 微信官方URL Scheme跳转小程序

获取方式

开发者无需调用平台接口,在MP平台->账号设置->基本设置->隐私与安全->明文Scheme拉起此小程序声明配置后,可自行根据如下格式拼接appid和path等参数,作为明文 URL Scheme 链接。

// 跳转链接
window.location.href = 'weixin://dl/business/?appid=*APPID*&path=*PATH*&query=*QUERY*&env_version=*ENV_VERSION*';

// 链接参数定义如下:
// APPID:通过明文 URL Scheme 打开小程序的 appid ;
// PATH:通过明文 URL Scheme 打开小程序的页面 path ,必须是已经发布的小程序存在的页面,不可携带 query;
// QUERY:通过明文 URL Scheme 打开小程序的 query ,最大512个字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~%`,需要url_encode;
// ENV_VERSION:要打开的小程序版本,正式版为release,体验版为trial,开发版为develop,仅在微信外打开时生效。注意:若不填写,则默认打开正式版小程序。

具体步骤如下:

(1)通过微信官方接口获取到access_token

接口:

GET https://api.weixin.qq.com/cgi-bin/token

测试结果: image.png

(2)获取URL Scheme

接口:

POST https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN

测试结果: image.png

前端H5实现跳转小程序代码:

window.location.href = "weixin://dl/business/?t=zBmSukOdDav"

注:文章仅供参考,欢迎各位大佬多多指教……

每篇一点毒鸡汤

在喜欢的状态里生活,做你自己,生活不在于富足,而在于知足。