微信小程序、app之间的跳转

article/2025/9/27 4:48:31

1.微信小程序 --> 微信小程序(之前有须为同一公众号下的小程序这一限制,现在可随意跳转)

首先说一下到另一个小程序需要的东西:

  1. 跳转目标小程序的APPID

  2. 使用navigator组件或者微信小程序API(wx.navigateToMiniProgram)

一、如何获取目标小程序APPID(以微信读书微信小程序为例)
  



二、实现跳转

​ 方法一:组件实现(在项目对应的 wxml 中使用 navigator 标签进行配置)

  <navigator target="miniProgram" open-type="navigate" app-id="小程序APPID" path="" version="release">打开另一个小程序</navigator>

​ 方法二:js实现(给跳转按钮绑定事件函数,在事件函数中调用下面的api)

wx.navigateToMiniProgram({appId: '',//要打开的小程序 appIdpath: 'page/index/index?id=123',//打开的页面路径,如果为空则打开首页extraData: {foo: 'bar'//需要传递给目标小程序的数据,目标小程序可在 App.onLaunch,App.onShow 中获取到这份数据},envVersion: 'develop',//要打开的小程序版本。develop 开发版、trial 体验版、release 正式版。仅在当前小程序为开发版或体验版时此参数有效。如果当前小程序是正式版,则打开的小程序必定是正式版。success(res) {// 打开成功}
})

​ 另: 如果打开之后想返回之前的小程序 使用 wx.navigateBackMiniProgram

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

​ 跳转效果在开发者工具中预览不出,在真机上可进行效果预览

说明:①从 2020 年 4 月 24 日起,使用跳转其他小程序功能将无需在全局配置中声明跳转名单,调用此接口时将不再校验所跳转的 AppID 是否在 navigateToMiniProgramAppIdList 中。②从 2020 年 4 月 24 日起,跳转其他小程序将不再受数量限制,使用此功能时请注意遵守运营规范。

在老版本小程序中,需要在app.json全局配置中设置白名单,如下所示:

"navigateToMiniProgramAppIdList": ["wx9fbad659d526c9bc","wx66d9cf3762c49a1a","小程序APYID"]

关于以上说明详情参考:https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html

2.微信小程序 <–>app(根据官方说明不能由小程序跳转至任意app,只能跳回app,也就是只能从app跳至小程序,再由小程序跳回app)

打开APP功能需要用户主动触发才能打开 APP,所以不由 API 来调用,需要用 open-type 的值设置为 launchApp 的 button 组件的点击来触发。

当小程序从 APP 打开的场景打开时(场景值 1069),小程序会获得返回 APP 的能力,此时用户点击按钮可以打开拉起该小程序的 APP。即小程序不能打开任意 APP,只能 跳回 APP。

在一个小程序的生命周期内,只有在特定条件下,才具有打开 APP 的能力,这个能力的规则如下:

当小程序从 1069 场景打开时,可以打开 APP。

当小程序从非 1069 的打开时,会在小程序框架内部会管理的一个状态,为 true 则可以打开 APP,为 false 则不可以打开 APP。这个状态的维护遵循以下规则:

  • 当小程序从以下场景打开时,保持上一次打开小程序时打开 App 能力的状态:
    • 从其他小程序返回小程序(场景值1038)时(基础库 2.2.4 及以上版本支持)
    • 小程序从聊天顶部场景(场景值1089)中的「最近使用」内打开时
    • 长按小程序右上角菜单唤出最近使用历史(场景值1090)打开时
    • 发现栏小程序主入口,「最近使用」列表(场景值1001)打开时(基础库2.17.3及以上版本支持)
    • 浮窗(场景值1131、1187)打开时(基础库2.17.3及以上版本支持)
  • 当小程序从非以上场景打开时,不具有打开 APP 的能力,该状态置为 false。

img

使用方法

小程序端

需要将 button 组件 open-type 的值设置为 launchApp。如果需要在打开 APP 时向 APP 传递参数,可以设置 app-parameter 为要传递的参数。通过 binderror 可以监听打开 APP 的错误事件。

app 端

APP 需要接入 OpenSDK。 文档请参考 iOS / Android

Android 第三方 app 需要处理 ShowMessageFromWX.req 的微信回调,iOS 则需要将 appId 添加到第三方 app 工程所属的 plist 文件 URL types 字段。 app-parameter 的获取方法,参数解析请参考 Android SDKSample 中 WXEntryActivity 中的 onResp 方法以及 iOS SDKSample 中 WXApiDelegate 中的 onResp 方法。

示例代码

<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打开APP</button>
Page({launchAppError (e) {console.log(e.detail.errMsg)}
})

error 事件参数说明

说明
invalid scene调用场景不正确,即此时的小程序不具备打开 APP 的能力。

所以要实现小程序跳转至app大概有以下几种思路:

1、利用官方api

就是上面提到的官方解决方案。需要app接入开放平台,并且与小程序属于同一账号下。最主要的问题是该方案仅适用于通过app打开小程序,或者通过app分享的卡片打开小程序,其他情况无法跳转,故在常用的场景下,该方案基本不可行。

2、利用webview网页跳转

我们可以在手机默认浏览器中直接在一个网页中打开app;那么在微信小程序web-view中是否可以呢?实际上web-view有大量权限限制,基本除了展示信息,其他交互都需要通过小程序原生代码实现。

3、利用默认浏览器跳转

在手机默认浏览器中,我们可以直接在一个网页中打开app;但是微信小程序做了限制,不允许跳转到默认浏览器,故该方案不可行。

4、利用应用宝跳转

应用宝是腾讯的,是否可以跳转到应用宝,然后打开app或下载呢?然而由于网页域名鉴权,除了腾讯自家的部分特殊小程序,其他小程序都是无法跳转的。

以上4种方案基本不可行,后来看到一篇博客写的使用小程序客服功能(原文:https://itlao5.com/wp/933.html),就试了下,发现真的可以,但是这种方案也有比较明显的缺点。

5、利用小程序客服的功能

小程序有小程序客服这个功能,而小程序客服是微信中的一个类似于公众号的功能;我们知道公众号是可以间接跳转到app的,那么跳转app的方案就出来了,小程序先打开客服页面,然后在客服页面通过关键字回复一个url(或卡片),点击url(或卡片)跳转到app推广链接,然后就可以打开或下载app了。

方案有了,那么该尝试下如何实施了:

(1)先跳转到微信小程序客服

官方提供了button可以直接跳转,设置open-type='contact’即可:

<button open-type='contact'>点击进入【APP】</button>

(2)跳转到微信小程序客服,输入关键字回复app下载宣传页或宣传二维码

客服会话关键词回复,这个小程序官方的仅支持文字回复,建议使用api接口来实现卡片或图片回复,可以自己开发,也可以用第三方平台,如:芝麻服务助手、知己助手等,反正就是搜索微信小程序客服,可以出来一大堆。

(3)这个方案缺点也很明显,就是操作步骤过多,还有一个就是无法精准定位到具体app页面,比如我在看某篇文章,点击打开app其实是希望还是进入到app的这篇文章页面,使用客服功能就不容易做到。

但是在目前无法做到十全十美的方案下,该方案也可以变通解决。

img

案缺点也很明显,就是操作步骤过多,还有一个就是无法精准定位到具体app页面,比如我在看某篇文章,点击打开app其实是希望还是进入到app的这篇文章页面,使用客服功能就不容易做到。

但是在目前无法做到十全十美的方案下,该方案也可以变通解决。


http://chatgpt.dhexx.cn/article/sK2A74IO.shtml

相关文章

uniapp分享微信提示由于不支持的分享类型无法分享到微信,App分享为微信小程序方法,由于不支持的分享类型无法分享到微信,由于应用和小程序未绑定在同意微信开放平台账号,无法分享到微信.

文章目录 由于不支持的分享类型无法分享到微信(解决)由于应用和小程序未绑定在同意微信开放平台账号&#xff0c;无法分享到微信(解决)share:fail [Share微信分享:-3]Unable to send, https://ask.dcloud.net.cn/article/287 在使用uniapp开发App分享微信&#xff0c;提示 由于…

uniapp app分享功能微信小程序的分享

小程序端和app端分享html <!-- #ifdef APP-PLUS --> <view class"goodsMenu" click"appShare"><view class"menuIcon"><image src"/package/static/mall/goodsShare.png" mode""></image>&l…

uniapp:APP跳转小程序

1、manifest.json勾选分享模块&#xff0c;填入APPID 2、登录微信开放平台微信开放平台&#xff0c;申请移动应用&#xff0c;并且将移动应用关联到需要跳转到的小程序。 这个步骤由后台操作完成&#xff0c;我这里没有记录。需要给后台提供APK的签名&#xff0c;查看获取签名的…

uni-app分享小程序页面

uni-app的小程序页面默认是不可分享的&#xff0c;点击页面右上角按钮进行分享时会提示&#xff1a;“当前页面不可转发/当前页面不可分享” 配置 打开项目的manifest.json文件&#xff0c;在“App模块配置”项的“Share(分享)”下&#xff0c;勾选“微信分享”&#xff1a; 在…

uni-app分享小程序卡片给微信好友

一、前言 最近有这样一个需求&#xff0c;使用APP将一个小程序的页面分享给微信好友&#xff0c;起初一脸问号&#xff0c;APP分享小程序的页面&#xff0c;两个不相干的东西怎么关联分享&#xff1f;于是乎抱着实现不了的心态在网上看帖子&#xff0c;最后终于在uni-app文档和…

App分享微信小程序功能介绍和业务方案分析

今天微信小程序新增了支持跳转App的功能&#xff0c;算是一次比较大的突破&#xff0c;我也第一时间体验了一下该功能&#xff0c;App和小程序之间的跳转还是比较灵活的。 屏幕快照 2018-01-25 下午7.05.46.png 小程序支持打开移动应用 逻辑图 因为需要用户主动触发才能打开 …

iOS从APP中分享出小程序详解

移动应用分享功能支持小程序类型分享,要求发起分享的App与小程序属于同一微信开放平台帐号。支持分享小程序类型消息至好友会话,不支持“分享至朋友圈”及“收藏”。 微信客户端版本要求:6.5.6及以上微信客户端版本。为兼容旧版本客户端,若客户端版本低于6.5.6,小程序类型…

APP分享微信小程序

APP可以分享小程序到微信对话框中&#xff0c;还能设置具体的跳转页面&#xff0c;下面介绍一下开发流程 1.APP绑定小程序 打开微信开放平台&#xff0c;登录APP的微信开放账号&#xff0c;在管理中心找到APP设置。点击小程序类目&#xff0c;绑定小程序。 绑定的时候需要登…

读取身份证UID

利用libnfc库读取&#xff1a; 原材料: ubuntu16.04 串口线CP2103或CP2102PN532模块 有些pn532匹配电路不对读不到 学习第一步破解M1卡&#xff1a; http://note.youdao.com/noteshare?id20e0e8130f40c30720eb346aefa546d3&subA1DCD4B0D6D8405EB53468E7511694DC 学习第…

c# winform 身份证信息读取

二代身份证信息读取源码分享 上软件运行界面&#xff1a; 温馨提示&#xff1a;运行程序别忘了装驱动哦&#xff01; 上完整源码。界面可以自己画&#xff01; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Syste…

二代身份证读取-微调版

说起微调其实就是对 上一篇文章 今天意外和身份证结缘 中提到的代码码放和调用一些巧妙的用法&#xff08;至少小鬼觉得很有意思很巧妙&#xff09;。 为什么有必要在写一篇 写的理由千千万&#xff1b;不写的理由万万千。对于小鬼来说就是&#xff1a;我吃饱了,撑着了&#x…

读取身份证信息系统的程序编写

文章目录 前言一、需要实现什么样的功能&#xff1f;二、编写过程 1.逻辑分析2.实操展示总结 前言 在网络诈骗的宣传过程中&#xff0c;常常提到不要去泄露自己的身份证号码&#xff0c;为什么呢&#xff1f;知己知彼&#xff0c;方能不被受骗&#xff0c;下面是对读取身份证信…

二代身份证读写器原理及开发

身份证读写器的作用就是从身份证中读取身份信息&#xff08;例如姓名、民族、身份证号等&#xff09;&#xff0c;然后显示或者传输给其他模块使用。功能框架如下&#xff1a; 功能框图说明&#xff1a; 1 业务模块。负责向安全模块发送命令&#xff0c;操作安全模块进行对应的…

身份证的验证和读取

身份证的验证和读取 开发工具与关键技术&#xff1a;Visual Studio 2015、C#.WPF 作者&#xff1a;周水生 撰写时间&#xff1a;2019年6月2日 首先我们说明一下身份证数字代表的意思&#xff1a; &#xff08;1&#xff09;前1、2位数字表示&#xff1a;所在省份的代码&#…

添加身份证读取窗口

实现功能&#xff1a;点击读取身份证会弹出身份证识别窗口&#xff0c;读取到数据后&#xff0c;回传用户选择是否替换原先数据。 效果演示 1.读取身份证的弹窗 src\components\idCard.vue <template><el-dialogtitle"读取身份证信息":close-on-click-mo…

基于华视身份证读卡器读取身份证信息的Android demo

项目概述 本Demo需要华视的身份证读卡器&#xff0c;连接Android机器设备&#xff0c;当身份证读卡器读取到身份证信息后&#xff0c;立马展示出身份证信息数据。得到身份证的姓名、照片、出生年月等数据。 项目概述 本Demo需要华视的身份证读卡器&#xff0c;连接Android机…

【Python 身份证JSON数据读取】——身份证前六位地区码对照表文件(最全版-JSON文件)

点个赞留个关注吧&#xff01;&#xff01; 1、生成身份证前六位地区码对照表JSON文件 2、python 读取JSON文件 提取码【1234】 json文件下载 废话不多说&#xff0c;先上效果图 一、生成身份证json数据文件 先去百度搜索地区身份证号码前6位查询 ,然后进入网站控制台界面&…

VUE实现华视身份证阅读器读取身份证信息(本文分两种情况,第一中是点击按钮读取信息,一种是自动读取信息)

本文是用了vueelement来实现华视身份证读卡器读取身份信息的&#xff0c;当然在开发之前要做好前提准备&#xff0c;就是厂家提供对应设备的api和安装对应的驱动。本文通过两种方法来实现读取信息&#xff0c;第一种是点击按钮读取信息&#xff0c;第二种是卡片放上去会自动读取…

身份证读取设备开发解决方案:2、Android下通过usb转串口读取身份证信息

身份证读取设备开发解决方案&#xff1a;2、Android下通过usb转串口读取身份证信息 文章目录 身份证读取设备开发解决方案&#xff1a;2、Android下通过usb转串口读取身份证信息1. 前言2. 准备3. android下读取身份证信息的demo3.1 部分源码3.2 碎片代码3.3 结果展示3.4 注意点…

自动化神器!Python 批量读取身份证信息写入 Excel

今天分享一个实用技能&#xff0c;利用 Python 批量读取身份证信息写入 Excel。 读取 以图片形式的身份证为例&#xff0c;信息读取我们使用百度文字识别OCR来实现&#xff0c;百度接口提供了免费额度&#xff0c;日常使用基本差不多够了&#xff0c;下面来具体看一下如何使用…