首页 > 编程语言 >H5网页跳转微信小程序踩坑

H5网页跳转微信小程序踩坑

时间:2023-11-13 16:23:56浏览次数:39  
标签:url 微信 跳转 H5 标签 config wx

问题:苹果手机可以显示图片跳转按钮,但是安卓手机无法显示出来。、问题:苹果手机可以显示图片跳转按钮,但是安卓手机无法显示出来。、

原因:
看看图片链接是 // 还是 http 开头,如果是 //test.com/upload/60/2b605429ddcc756370be777761c98d.png 这种形式的图片链接,会导致安卓手机在 <script type="text/wxtag-template"> 标签里的图片无法显示出来。

解决:
图片链接加上前缀 http: 或者 https:,变成 https://test.com/upload/60/2b605429ddcc756370be777761c98d.png

问题:无法显示跳转小程序按钮

  1. wx.config 参数是否正确,比如 appId 和 signature。容易遇到问题是 signature 签名的算法的计算。

根据官方文档

签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。

生成签名用到的 url 参数 必须是 当前网页的 URL,不包含 # 及其后面部分。如果当前打开的 H5 页面包含有 # 字符,请按要求进行舍弃然后计算签名。PHP 代码示例:

// $_REQUEST['url'] 就是页面 JS 获取到的 location.href
$url_raw = $_REQUEST['url'];
$url_arr = explode('#', $url_raw);
$url = reset($url_arr);
  1. 务必仔细检查 <wx-open-launch-weapp> 里填写的 username 或者 path 属性是否按照官方文档填写正确。

结合 uniapp 使用

参考文章:https://www.i4k.xyz/article/RosaChampagne/119571606

  1. <script type="text/wxtag-template"> 标签里使用变量 不能 使用 vue 的写法,如:
<image :src="isVip ? ad_mini : ad" class="btnMore22" width="90%"></image>

而是要用小程序原生的写法,使用 {{ }} 将变量包围起来:

<image src="{{ isVip ? ad_mini : ad }}" class="btnMore22" width="90%"></image>
  1. Vue 增加忽略自定义元素
Vue.config.ignoredElements = ['wx-open-launch-weapp'];

其它要注意的问题

引用官方文档

  • 开放对象:已认证的服务号,服务号绑定“JS接口安全域名”下的网页可使用此标签跳转任意合法合规的小程序。
  • 页面中与布局和定位相关的样式,如position: fixed; top -100;等,尽量不要写在插槽模版的节点中,请声明在标签或其父节点上
  • 对于有CSP要求的页面,需要添加白名单frame-src https://*.qq.com webcompt:,才能在页面中正常使用开放标签。

来自第三方参考链接:https://developers.weixin.qq.com/community/develop/article/doc/000c00b4490678f528baf2cf756413
https://www.shuzhiduo.com/A/A7zgQvkP54/
https://juejin.cn/post/6844904193635909645

  • 如果你跳转之后显示页面不存在,请检查下 path 的路径结尾是否写上了 .html
  • wx.config 在初始化授权写上开放标签 openTagList: ['wx-open-launch-weapp']
  • wx.config中 jsApiList 里的属性不能为空,否则会提示 config:param is empty
wx.config({
  // ...
  jsApiList: ['onMenuShareAppMessage'], // 因为不能为空,所以我随便写了一个微信的方法
  openTagList: ['wx-open-launch-weapp'],
});
  • 如果要测试 wx.config 参数是否配置成功,将 debug: true 属性加上,如果用微信开发者工具或者微信客户端访问网页弹出对话框提示 {errMsg: "config:ok”},说明已经接入成功;
  • 如果你觉得里面写样式不好写,可以在里面样式style写opacity:0;,这样的话开放标签只是用来填充,大小自己控制就行;
  • 经过测试发现标签内定义的样式真的很尴尬,且不受控制,所以我们直接将标签用 CSS 绝对定位并设透明度为 opacity: 0, 盖在了我们原本的设计图上;
  • 透明度为 opacity: 0 的标签 <script type="text/wxtag-template"> 不能为空,否则宽高会被解析为 0,也就是按钮根本点击不到;
  • 在 VUE 的 mounted 生命周期回调函数内侦听开放标签的回调事件:
mounted(){
    var btn = document.getElementById(this.id)
    btn.addEventListener('launch', e => {
        // 在此处可设置粘贴板内数据,数据是传递给 app 的参数进,
        console.log('success');
    });
    btn.addEventListener('error', e => {
        // 在此处可设置粘贴板内数据,数据是传递给 app 的参数进,
        console.log('fail', e.detail);
        // 唤醒失败的情况下,可用于降级处理比如在此处跳转到应用宝
    });
}
  • 如果微信版本低于7.0.12 开放标签是无法使用的,所以最好在开放标签外套一层 DIV 用于点击事件,在事件中断段微信版本号如果低于,则降级到应用宝之类的方案(参考例子:https://www.shuzhiduo.com/A/A7zgQvkP54/)

标签:url,微信,跳转,H5,标签,config,wx
From: https://www.cnblogs.com/Alex80/p/17829416.html

相关文章

  • 个微协议开发/微信个人号二次开发/ipad协议/api接口
    E云管家,是完整的第三方服务平台,并基于IPAD协议8.0.37开发出的最新个微API服务框架。你可以通过API实现个性化微信功能(例云发单助手、社群小助手、客服系统、机器人等),用来自动管理微信消息。用户仅可一次对接,完善所有功能。可实现分布式部署,批量管理服务器。如果您不想自己部......
  • 微信双开
    https://www.zhihu.com/question/447000419/answer/2410063638(21封私信/89条消息)IOS怎么手机微信退出电脑版微信不退出啊?-知乎(zhihu.com)......
  • 集成微信公众号
     1.微信公众号菜单管理  申请微信公众号获取appid和appsecret  推送菜单有两种实现方式:  完全按照接口文档http方式,但这种方式比较繁琐  使用weixin-java-mp工具,这个是封装好的工具,可以直接使用,方便快捷,后续我们使用这种方式开发  (1)在application-dev.yml中添加......
  • 程序跳转语句
    程序跳转语句break用于跳出或者退出循环结构,通常和if一起搭配使用语法结构:while表达式1:  执行代码  if表达式2   breakcontinue的作用是用于跳过本次循环的后续代码,而继续执行下一次循环操作,continue在循环中通常也是与if一起搭配使用语法结构while表达式1:......
  • 微信的聊天记录导出到网页中的最快方法,语音能听,图片视频能看
    12-7如果你有把微信的聊天记录导出到表格或者网页上的需求,适合看看本文章,本文的方法可以让你把微信的聊天记录导出备份,可以在完全脱离微信的情况下随时调取查看聊天数据。本文介绍的软件可以导出两种格式的聊天记录备份文件,一种是表格,一种是网页。导出表格的好处是文本紧凑,篇幅小,缺......
  • Go实现Zabbix企业微信机器人告警
    企业微信应用通知的程序相对复杂点,见上篇文章机器人告警相对简单点,只需一个url即可企业微信里创建一个机器人注意机器人的url,后续程序中需要使用直接上程序sjgzbx_machine.gopackagemainimport("bytes""encoding/json""fmt""io/ioutil""net/ht......
  • 微信小程序canvas 设置旋转css 不生效
    问题项目中有使用canvas生成条码(一维码)的功能,使用的插件wxbarcode来生成的,但是项目需求的条码是要竖向的,插件的生成的是横向的,不知道是否有参数去控制,当时图省事想着直接用css旋转一下好了,在模拟器上看到的确实也没有问题,但是在真机上就出问题,没有旋转,还发生了偏移解决开始一......
  • 微信登录流程
     步骤分析:小程序端,调用wx.login()获取code,就是授权码。小程序端,调用wx.request()发送请求并携带code,请求开发者服务器(自己编写的后端服务)。开发者服务端,通过HttpClient向微信接口服务发送请求,并携带appId+appsecret+code三个参数。开发者服务端,接收微信接口服务......
  • 【实用小教程】如何批量导出、备份微信通讯录好友
    6-11对于有微信通讯录备份需求的人来说,要把微信的通讯录联系人的微信号、备注的手机号等信息弄出来,有不少困难,因为微信本身不提供这样的功能,所以如果要一个个抄,是不太现实的。本教程要解决的问题就是微信通讯录备份的问题,速度贼快,原理就是通过分析微信存储在本地的文件,直接从文件里......
  • Go实现Zabbix企业微信应用通知告警
    企业微信https://work.weixin.qq.com/企业微信->应用管理->创建应用个人微信也能接收企业微信信息我的企业->微信插件->扫码关注特殊说明之前企业微信只需要调用接口就能实现微信应用通知,最近改版,变得比较复杂1:需要配置可信IP才能发2:配置可信IP前需要先设置可信域名......