微信小程序 ==== 半屏打开小程序

news2025/2/26 2:04:03

 

目录

打开半屏小程序

调用流程

打开半屏小程序

半屏小程序环境判断

返回原小程序

使用限制

wx.openEmbeddedMiniProgram

功能描述

参数

wx.navigateBackMiniProgram

功能描述

示例代码

Object wx.getEnterOptionsSync()

功能描述

返回值

返回有效 referrerInfo 的场景

不同 apiCategory 场景下的 API 限制

注意


打开半屏小程序

从基础库 2.20.1 开始支持

当小程序需要打开另一个小程序让用户进行快捷操作时,可将要打开的小程序以半屏的形态跳转。

avatar

调用流程

打开半屏小程序

  1. 2.23.1以下版本基础库,开发者需要在全局配置app.jsonembeddedAppIdList字段中声明需要半屏跳转的小程序,若不配置将切换为普通的小程序跳转小程序。2.23.1及以上版本起无需配置

配置示例:

{
  "embeddedAppIdList": ["wxe5f52902cf4de896"]
}
  1. 开发者通过调用wx.openEmbeddedMiniProgram半屏跳转小程序。

半屏小程序环境判断

开发者可以通过调用wx.getEnterOptionsSync读取apiCategory参数,当值为embedded时,可以判断此时小程序被半屏打开。

返回原小程序

被半屏打开的小程序可以以通过调用wx.navigateBackMiniProgram返回上一个小程序。

使用限制

使用过程有以下限制,若不符合以下所有条件将被自动切换为普通的小程序跳转小程序,不影响用户使用:

  1. 被半屏跳转的小程序需要通过来源小程序的调用申请,开发者可在 小程序管理后台「设置」-「第三方设置」-「半屏小程序管理」板块发起申请,最多可以申请10个小程序;
  2. 2.23.1版本以下基础库,被半屏打开的小程序需要在app.jsonembeddedAppIdList字段中声明;
  3. 当前小程序需为竖屏;
  4. 被半屏跳转的小程序需为非个人主体小程序(不含小游戏)。

wx.openEmbeddedMiniProgram

基础库 2.20.1 开始支持,低版本需做兼容处理。

以 Promise 风格 调用:支持

需要页面权限:当前是插件页面时,宿主小程序不能调用该接口,反之亦然

小程序插件:支持,需要小程序基础库版本不低于 2.26.2

功能描述

打开半屏小程序。接入指引请参考 半屏小程序能力。

参数

属性类型默认值必填说明最低版本
appIdstring要打开的小程序 appId
pathstring打开的页面路径,如果为空则打开首页。path 中 ? 后面的部分会成为 query,在小程序的 App.onLaunchApp.onShow 和 Page.onLoad 的回调函数或小游戏的 wx.onShow 回调函数、wx.getLaunchOptionsSync 中可以获取到 query 数据。对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
extraDataobject需要传递给目标小程序的数据,目标小程序可在 App.onLaunchApp.onShow 中获取到这份数据。如果跳转的是小游戏,可以在 wx.onShow、wx.getLaunchOptionsSync 中可以获取到这份数据数据。
envVersionstringrelease要打开的小程序版本。仅在当前小程序为开发版或体验版时此参数有效。如果当前小程序是正式版,则打开的小程序必定是正式版。
合法值说明
develop开发版
trial体验版
release正式版
shortLinkstring小程序链接,当传递该参数后,可以不传 appId 和 path。链接可以通过【小程序菜单】->【复制链接】获取。仅 verify=binding 支持。
verifystringbinding校验方式。2.24.3
合法值说明
binding校验小程序管理后台的绑定关系。
unionProduct校验目标打开链接是否为小程序联盟商品。
noRelaunchIfPathUnchangedbooleanfalse不reLaunch目标小程序,直接打开目标跳转的小程序退后台时的页面,需满足以下条件:1. 目标跳转的小程序生命周期未被销毁;2. 且目标当次启动的path、query与上次启动相同,apiCategory以wx.getApiCategory接口的返回结果为准。2.24.0
allowFullScreenbooleanfalse打开的小程序是否支持全屏2.33.0
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

 

wx.openEmbeddedMiniProgram({
  appId: '',// 你要打开的小程序appid
  path: 'page/index/index', // 打开的页面路径,如果为空则打开首页
  extraData: {},// 需要传递给目标小程序的数据
  envVersion: 'develop',// 要打开的小程序版本 develop 开发版 trial 体验版 release 正式版
  success(res) {
    // 打开成功
  },
  fail(e) {
    // 打开失败
  },
})

 

wx.navigateBackMiniProgram

基础库 1.3.0 开始支持,低版本需做兼容处理。

以 Promise 风格 调用:支持

需要页面权限:当前是插件页面时,宿主小程序不能调用该接口,反之亦然

小程序插件:不支持

微信 Windows 版:支持

微信 Mac 版:支持

功能描述

返回到上一个小程序。只有在当前小程序是被其他小程序打开时可以调用成功

注意:微信客户端 iOS 6.5.9,Android 6.5.10 及以上版本支持

属性类型默认值必填说明
extraDataObject{}需要返回给上一个小程序的数据,上一个小程序可在 App.onShow 中获取到这份数据。 详情。
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

示例代码

wx.navigateBackMiniProgram({
  extraData: {
    foo: 'bar'
  },
  success(res) {
    // 返回成功
  }
})

 实测小程序B换成体验版,就OK了,开发版在安卓上有问题

Object wx.getEnterOptionsSync()

基础库 2.9.4 开始支持,低版本需做兼容处理。

小程序插件:支持,需要小程序基础库版本不低于 2.9.4

微信 Windows 版:支持

微信 Mac 版:支持

功能描述

获取本次小程序启动时的参数。如果当前是冷启动,则返回值与 App.onLaunch 的回调参数一致;如果当前是热启动,则返回值与 App.onShow 一致。

返回值

启动参数

属性类型说明最低版本
pathstring启动小程序的路径 (代码包路径)
scenenumber启动小程序的场景值
queryObject启动小程序的 query 参数
shareTicketstringshareTicket,详见获取更多转发信息
referrerInfoObject来源信息。从另一个小程序、公众号或 App 进入小程序时返回。否则返回 {}。(参见后文注意)
结构属性类型说明
appIdstring来源小程序、公众号或 App 的 appId
extraDataObject来源小程序传过来的数据,scene=1037或1038时支持
forwardMaterialsArray.<Object>打开的文件信息数组,只有从聊天素材场景打开(scene为1173)才会携带该参数
结构属性类型说明
typestring文件的mimetype类型
namestring文件名
pathstring文件路径(如果是webview则是url)
sizenumber文件大小
chatTypenumber从微信群聊/单聊打开小程序时,chatType 表示具体微信群聊/单聊类型
合法值说明
1微信联系人单聊
2企业微信联系人单聊
3普通微信群聊
4企业微信互通群聊
apiCategorystringAPI 类别2.20.0
合法值说明
default默认类别
nativeFunctionalized原生功能化,视频号直播商品、商品橱窗等场景打开的小程序
browseOnly仅浏览,朋友圈快照页等场景打开的小程序
embedded内嵌,通过打开半屏小程序能力打开的小程序

返回有效 referrerInfo 的场景

场景值场景appId含义
1020公众号 profile 页相关小程序列表来源公众号
1035公众号自定义菜单来源公众号
1036App 分享消息卡片来源App
1037小程序打开小程序来源小程序
1038从另一个小程序返回来源小程序
1043公众号模板消息来源公众号

不同 apiCategory 场景下的 API 限制

X 表示 API 被限制无法使用;不在表格中的 API 不限制。

defaultnativeFunctionalizedbrowseOnlyembedded
navigateToMiniProgramXX
openSettingX
<button open-type="share">XXX
<button open-type="feedback">X
<button open-type="open-setting">X
openEmbeddedMiniProgramXXX

注意

部分版本在无 referrerInfo 的时候会返回 undefined,建议使用 options.referrerInfo && options.referrerInfo.appId 进行判断。

  wx.showModal({
        title: "提示",
        content: "提交成功",
        showCancel: false,
        success: function (res) {
          if (res.confirm) {
            const enterOptionsQuery = wx.getEnterOptionsSync().apiCategory;
            console.log(enterOptionsQuery, "获取的参数");
            if (enterOptionsQuery == "embedded") {
              console.log(1111);

              wx.navigateBackMiniProgram({
                success(res) {
                  console.log(res, "返回成功");
                },
                fail: (err) => {
                  console.log(err);
                },
              });
              return;
            }

            wx.navigateBack({
              delta: 1,
            });
          }
        },
      });

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2040976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据可视化之旅,从数据洞察到图表呈现,可视化的产品设计

图表作为数据可视化的重要工具&#xff0c;是对原始数据进行深度加工与解读的有效手段&#xff0c;它助力我们洞悉数据背后的真相&#xff0c;使我们能更好地适应这个由数据驱动的世界。无论是工作汇报、项目实施、产品设计、后台界面还是数据大屏展示&#xff0c;图表都扮演着…

Transformer目标检测 | DETR论文解读

0. 前言 DETR是首个将Transformer应用到2D目标检测任务中的算法&#xff0c;由Facebook于2020年在论文《End-to-End Object Detection with Transformers》中提出。与传统目标检测算法不同的是&#xff0c;DETR将目标检测任务视为一个直接的集合预测问题&#xff0c;采用基于集…

Java同城宠物兼职遛狗系统小程序源码

&#x1f43e;【同城新宠】遛狗兼职大揭秘&#xff01;一键解锁“遛狗系统”&#xff0c;狗狗开心你也赚&#xff01;✨ &#x1f43e; 开篇&#xff1a;告别孤单&#xff0c;狗狗也需要社交圈&#xff01;&#x1f46d; Hey小伙伴们&#xff0c;你家的小毛球是不是总在家里闷…

周杰伦又救了腾讯音乐一次

文丨郭梦仪 “一个周杰伦撑起了半个腾讯音乐”&#xff0c;近十年前对腾讯音乐的调侃&#xff0c;如今依然成立。 作为中国乐坛霸主&#xff0c;腾讯音乐&#xff08;简称TME&#xff0c;1698.HK&#xff09;过去打下的音乐版权江山&#xff0c;似乎已成其取之不尽的金矿&…

Github-vscode联合使用保姆及教程

Github-VScode联合使用保姆及教程 update: 2024/8/10 _Karen bluu 文章目录 Github-VScode联合使用保姆及教程1.Git 和 Github分别是什么2.安装2.1 git安装2.2 vscode安装 3. 使用Github3.1 拉取项目3.1.1 拉取方法3.1.2 注意事项 3.2 寻找合适的项目3.3 创建自己的github仓库3…

【Python学习-UI界面】PyQt5 小部件12-QStackedWidget 多页显示

功能和 QTabWidget 类似&#xff0c;它也有助于高效利用窗口的客户区域。 QStackedWidget 提供了一个窗口堆栈&#xff0c;每次只能查看一个窗口。它是建立在 QStackedLayout 之上的一个有用的布局。 样式如下: 右键可以变型为QTabWidget

养生生活视频素材去哪里找?养生系列视频素材网站分享

如何寻找高质量的养生视频素材。无论您是刚入行的新手&#xff0c;还是拥有众多粉丝的资深创作者&#xff0c;优质的养生视频素材都是吸引观众的关键。接下来&#xff0c;我将介绍一些顶级平台&#xff0c;帮助您轻松获取各类养生视频素材。 蛙学网 首先推荐的平台是蛙学网。这…

redisssion分布式锁

分布式锁的问题 基于setnx的分布式锁实现起来并不复杂&#xff0c;不过却存在一些问题。 锁误删问题 第一个问题就是锁误删问题&#xff0c;目前释放锁的操作是基于DEL&#xff0c;但是在极端情况下会出现问题。 例如&#xff0c;有线程1获取锁成功&#xff0c;并且执行完任…

Vue2 和 Vue3中EventBus使用差异

目录 前言一、EventBus 和 mitt 的对比二、Vue 2 中的 EventBus 使用实例2.1 创建 EventBus2.2 在组件中使用 EventBus2.2.1 组件 A - 发送事件2.2.2 组件 B - 监听事件 2.3 注意事项 三、Vue 3 中的 mitt 使用实例3.1 安装 mitt3.2 创建 mitt 实例3.3 在组件中使用 mitt3.3.1 …

【笔记】MSPM0G3507开发环境搭建——MSPM0G3507与RT_Thread(一)

环境搭建大体过程就不再赘述了&#xff0c;本文记录一下我刚开始搭建环境时踩过的坑以及一些不太懂的地方。后边会出MSPM0G3507RT-Thread 3.1.5相关的教程&#xff0c;感兴趣记得点点关注。 本篇使用立创地猛星MSPM0G3507开发板 参考文章&#xff1a; 【学习笔记一】搭建MSPM…

几种Word Embedding技术详解

NLP 中的词嵌入是一个重要术语&#xff0c;用于以实值向量的形式表示用于文本分析的单词。这是 NLP 的一项进步&#xff0c;提高了计算机更好地理解基于文本的内容的能力。它被认为是深度学习在解决具有挑战性的自然语言处理问题方面最重要的突破之一。 在这种方法中&#xff…

视觉SLAM中的数学基础:李群与李代数

在视觉SLAM&#xff08;Simultaneous Localization and Mapping&#xff09;中&#xff0c;理解和应用李群&#xff08;Lie Group&#xff09;与李代数&#xff08;Lie Algebra&#xff09;是非常关键的。李群与李代数为描述和处理空间中的连续变换&#xff08;如旋转和平移&am…

【OCR 学习笔记】二值化——局部阈值方法

二值化——局部阈值方法 自适应阈值算法Niblack算法Sauvola算法 自适应阈值算法 自适应阈值算法1用到了积分图&#xff08;Integral Image&#xff09;的概念。积分图中任意一点 ( x , y ) (x,y) (x,y)的值是从图左上角到该点形成的矩形区域内所有值的和。即&#xff1a; I (…

逻辑回归之鸢尾花数据集多分类任务

目录 1.导入数据 2.定义多分类模型 3.准备测试数据 4.绘制决策边界 对于多分类任务&#xff0c;其实就是多个二分类任务。 先分黑色(标签为1)和其他(标签为0)&#xff0c;在这个基础上再去分红色和绿色&#xff0c;此时就将红色标签设置为1&#xff0c;其他设置为0&#x…

关于 Lora中 Chirp Spread Spectrum(CSS)调制解调、发射接收以及同步估计的分析

本文结合相关论文对CSS信号的数学形式、调制解调、发射接收以及同步估计做了全面分析&#xff0c;希望有助于更好地理解lora信号 long-range (LoRa) modulation, also known as chirp spread spectrum (CSS) modulation, in LoRaWAN to ensure robust transmission over long d…

Unity(2022.3.38LTS) - 页面介绍

目录 A. 创建项目 B.Unity 编辑器页面 C. 自己点点 A. 创建项目 有多个编辑器版本的选择编辑器. 3D和2D的区别就是初始化的包不同,这些包打开项目之后都可以在自行下载,随意切换, B.Unity 编辑器页面 Unity 编辑器页面是一个高度集成且功能丰富的开发环境&#xff0c;为游…

ISE14.7后仿真、烧录教程

ISE14.7后仿真、烧录教程 ISE14.7后仿真、烧录教程 系统版本&#xff1a;win10&#xff0c;EDA工具版本&#xff1a;ISE14.7&#xff0c;modelsim SE 10.4&#xff0c;本文主要包含两部分内容&#xff0c;首先是基于ISE的后仿真&#xff0c;基于ISE和modelsim的联合后仿真&am…

C++简单界面设计

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {---------------------窗口设置----------------------this->setWindowTitle("南城贤子摄影工作室");//设置窗口标题this->setWindowIcon(QIcon("d:\\Pictures\\C…

上海悠远为您解析芯片管理系统的核心功能

在当今科技日新月异的时代&#xff0c;芯片作为信息技术的基石&#xff0c;其管理效率与安全性直接关系到整个系统的稳定运行与数据安全。因此&#xff0c;一个高效、智能的芯片管理系统成为了不可或缺的技术支撑。该系统通过集成多项核心技术&#xff0c;实现了对芯片从生产到…

统信UOSV20 安装redis

在线安装 在统信软件&#xff08;UOS&#xff09;上使用yum安装Redis&#xff0c;可以按照以下步骤进行&#xff1a; 打开终端。首先添加Redis的官方仓库&#xff0c;可以使用以下命令&#xff1a; sudo yum install epel-release安装Redis&#xff1a; sudo yum install r…