微信h5跳转小程序wx-open-launch-weapp开放标签不显示(已解决)

devtools/2024/9/18 11:01:50/ 标签: 微信, 小程序

前言: 

  前几天成功对接了跳转第三方小程序的功能,今天有个页面有需要对接。但是奇怪的是用的和上次一模一样的配置,但就是死活不显示wx-open-launch-weapp这个开放标签的按钮,看不到任何效果(这个问题真的是让人欲哭无泪,相同的代码不同的页面就不显示了),下面就说说我的排查解决过程。

开启wx.config的debug模式:

首先我们在wx.config的配置中开启debug。

wx.config({debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印appId: 'ccccxxxx4354353453', // 必填,公众号的唯一标识timestamp: 0123456, // 必填,生成签名的时间戳nonceStr: 'nonceStr', // 必填,填任意非空字符串即可signature: 'signature', // 必填,填任意非空字符串即可jsApiList: ['showOptionMenu', 'chooseImage', 'previewImage'], // 必填,随意一个接口即可  openTagList: ['wx-open-launch-weapp'], // 填入打开小程序的开放标签名 })

然后把修改的代码发布到服务其中,在手机上看出调试效果(注意只能够在真机上才看到效果,浏览器和微信开发工具中都看不到效果)

输出结果为:"errMsg":"config:ok"

这就奇怪了,这里提示配置成功也就说明了,签名什么的都是生成成功了的。排除签名生成错误和后端参数传递异常问题。

使用微信开发工具查看wx.config是否获取到OpenTag

查看之前的一个配置成功的页面微信开发工具控制台输出是:

获取到了wx-open-launch-weapp的开发标签权限

而我新加的这个页面是没有获取到开发标签的权限的,如下图所示:

分析解决问题

  到这里我们基本上可以看出来是没有获取到微信开放标签(OpenTag)的权限,而开放标签也是jweixin-1.6.0.js开始支持,于是我到浏览器页面查看了js的加载资源,果然发现了问题所在,原来在之前的母版页中有一个jweixin-1.3.0.js的SDK先加载了,所以导致了这个开发标签获取不到的问题,于是我将jweixin-1.3.0.js替换成jweixin-1.6.0.js就成功了!!!

invalid signature签名错误排查:

假如你遇到签名错误的情况,建议你按照以下顺序进行排查。

  1. 确认签名算法正确,可用微信 JS 接口签名校验工具 页面工具进行校验。

  2. 确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致。

  3. 确认url是页面完整的url(请在当前页面alert(location.href.split('#')[0])确认),包括'http(s)://'部分,以及'?'后面的GET参数部分,但不包括'#'hash后面的部分。

  4. 确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。

  5. 确保一定缓存access_token和jsapi_ticket。

  6. 确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。


http://www.ppmy.cn/devtools/112414.html

相关文章

openCV的python频率域滤波

在OpenCV中实现频率域滤波通常涉及到傅里叶变换(Fourier Transform)和其逆变换(Inverse Fourier Transform)。傅里叶变换是一种将图像从空间域转换到频率域的数学工具,这使得我们可以更容易地在图像的频域内进行操作,如高通滤波、低通滤波等。 下面,我将提供一个使用Py…

闲云野记:24915

一、前言 本次回顾3个知识点:进程地址空间、JavaScript项目的影响优化、Vue 3 的应用路由。 二、进程地址空间 进程内核数据结构(task_struct)代码(只读的)和数据 ;进程具有独立性:多进程之间…

Xilinx系FPGA学习笔记(七)FIFO的IP核学习

系列文章目录 文章目录 系列文章目录FIFO介绍双时钟FIFO的IP核配置 FIFO介绍 FIFO(First In First Out),即先进先出。FPGA 或者 ASIC 中使用到的 FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者…

Eureka原理与实践:构建高效的微服务架构

Eureka原理与实践:构建高效的微服务架构 引言 随着微服务架构的日益普及,服务的数量和复杂性不断增加,如何有效地管理这些服务成为了一个重要的挑战。Eureka,作为Netflix开源的服务发现组件,凭借其简单、健壮的特性&…

【智慧物流】新中地智慧城市实训:优秀学生项目作品1

实训结束后,同学们在最后的答辩中纷纷展现了自己的优秀成果,并以小组的形势进行汇报。今天截取部分学生优秀作品给大家进行展示,帮助大家快速了解智慧系列项目的效果。 智慧城市开发项目主题:智慧物流 (为保护学生隐…

机器学习-------数据标准化

什么是归一化,它与标准化的区别是什么? 一 作用 在做训练时,需要先将特征值与标签标准化,可以防止梯度防炸和过拟合; 将标签标准化后,网络预测出的数据是符合标准正态分布的—StandarScaler()&#xff0c…

有用的批量合并视频重命名以及有用的提取音频。遍历指定文件夹下所有视频文件,先合并归一化再生成包含包含说话人的srt格式的文件

文章目录 合并视频文件提取音频批量识别srt!——需要以管理员身份运行pycharm谷歌接口方案的srt批量转单个文件能成功运行但是为繁体字的修改分段处理合并视频文件 定义filename为"E:\四1班—吴希敏" 遍历这个文件夹"E:\四1班—吴希敏"且包含多个层级目录…

从基础到进阶:利用EasyCVR安防视频汇聚平台实现高效视频监控系统的五步走

随着科技的飞速发展,视频监控技术在社会安全、企业管理、智慧城市构建等领域扮演着越来越重要的角色。一个高效智能的视频监控管理系统不仅能够提升监控效率,还能在预防犯罪、事故预警、数据分析等方面发挥巨大作用。 一、需求分析 在设计视频监控管理…

SQL笔试题目解析:视频号数据分析组外包招聘

在数据分析领域,SQL是进行数据查询和操作的核心技术。本次视频号数据分析组外包招聘的笔试题目,旨在考察应聘者对SQL的熟练程度以及解决实际问题的能力。以下是对笔试题目的详细解析和SQL代码示例。 题目概览 本次笔试共有四个题目,涉及对视…

No module named MYSQLdb 问题解决

问题: 导入写好的数据库时报错 解决:pip install mysql-python (又报错) 找了网上的方法: 执行 pip install PyMySQL,将数据库连接改为 mysqlpymysql://username:passwordserver/db,接下来的操…

20240911软考架构-------软考156-160答案解析

每日打卡题156-160答案 156、NoSQL整体框架分为4层,由下至上分为数据持久层、数据分布层、数据逻辑模型层和(1)。(2)定义了数据的存储形式。(3)定义了数据是如何分布的。(4&#xf…

Java集合面试(上)

Java集合面试(上) 集合概述 Java 集合,也叫作容器,主要是由两大接口派生而来:一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对 说说List,Set,Queue&#…

【Kubernetes】linux centos安装部署Kubernetes集群

【Kubernetes】centos安装Kubernetes集群 1、环境准备 系统centos7 配置yum源参考文章 Centos系统换yum源 yum -y update 步骤1-3是所有主机都要配置,主机名和hosts配置完后可以使用工具命令同步 1.1 主机 一主二从 主机名ipk8smaster192.168.59.148k8snode11…

Python数据分析 Pandas库-初步认识

Python数据分析 Pandas库-初步认识 认识Pandas ​ pandas是一个非常实用的Python工具,我们可以把它想象成一个超级强大的表格处理工具,它比Excel更智能,操作更为简单。pands可以从各种文件格式(CSV、JSON、SQL、Excel&#xff0…

链路聚合(Link Aggregation)

概念: 链路聚合(Link Aggregation)是将两个或更多个物理端口(如以太网端口)结合成一个单一的逻辑端口(Eth-Trunk或Trunk接口),通过该逻辑端口实现网络流量的负荷分担和冗余备份。 增…

CAN总线-STM32上CAN外设

1.STM32 CAN外设简介 2.CAN网拓扑结构 3.CAN收发器电路 4.CAN框图 5.CAN基本结构 6.发送过程 7.接收过程 8.发送和接收配置位 9.标识过滤器(重点) 这里的FBMX模式设置的列表模式:你在列表中输入你想要的报文ID,不在你列表中的ID屏…

Redis_RDB持久化

基于RDB的持久化方式会把当前内存中所有的redis键值对数据以快照的方式写入硬盘文件中,如果需要恢复数据,就把快照文件读到内存中。 RDB快照文件是经压缩的二进制格式的文件,它的储存路径不仅可以在redis服务器启动前通过配置参数来设置&…

【用Java学习数据结构系列】用堆实现优先级队列

看到这句话的时候证明:此刻你我都在努力 加油陌生人 个人主页:Gu Gu Study 专栏:用Java学习数据结构系列 喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xff…

lvs-dr模式实验详解

华子目录 lvs-dr(企业当中最常用)dr模式数据逻辑dr模式数据传输过程dr模式的特点实验拓扑实验主机准备实验步骤1.client的ip设定2.router上的ip设定3.router开启路由转发功能4.lvs主机中的ip设定5.webserver1主机中的ip设定6.webserver2主机中的ip设定7.…

todo待续

todo: 1,如何获取转录本、启动子等bed文件,从gtf等注释中 2,bed注释gene的方法 findoverlap、chip类peak注释函数,bedtools工具的使用等 3,每篇博客下面的todo 4,先占个坑 ChIP/ATAC&#…