微信H5分享外部链接,缩略图不显示
可关注微信公众号酒酒酒酒查看原文:

前言:最近做了一款推广茶的APP软件,展厅、产品需要分享功能;从APP内分享到H5网页;微信内打开H5网页,点击微信内右上角三个点,可再次分享;
注意:大多数情况下,点击右上角三个点,再次分享后,缩略图不显示,需要做特殊处理。
废话结束,正文开始,以下页面是在H5页面中执行。
前置条件:
开发环境:windows
开发框架:uni-app , H5+,nativeJS
编辑器:HbuilderX 2.8.13
4.兼容版本:安卓,IOS已作测试
正式进入开发:
1. 首先引入微信JS-SDK
1.1 在项目的跟目录下执行npm代码:npm install jweixin-module --save
1.2 之后在main.js 里面导入JS-SDK文件,代码如下
// main.js
import Vue from 'vue'
import App from './App'
// 导入微信js-sdk
import wx from "jweixin-module";
// 挂载到Vue原型上
Vue.prototype.$wx=wx;
2. 在需要进行再次分享的h5页面做如下代码处理;
在vue的data函数中给wx.config()一个初始化的配置项
// 在vue的data函数
data() {
return {
wxConfig:{
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,企业号的唯一标识,此处填写企业号corpid
timestamp:'' , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录1
// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
jsApiList: [
"updateAppMessageShareData",
"updateTimelineShareData",
"onMenuShareTimeline",
"onMenuShareAppMessage"
]
}
}
}
3. 像后端人员请求 wx.config 配置项,timestamp前端人员可自己获取,也可以从后端返回
3.1 前端人员通过window.location.href获取当前页面路径,传递给后端返回配置信息
// 获取微信SDK配置信息(此方法在uni-app的onLoad里面调用)
getWxConfigInfo(){
let that=this;
// 获取当前页面路径
let url=window.location.href;
// 发起请求,向后端人员wx.config配置项
that.$http.post('Wx/getsignpackage', {url:url}, {
'load': false
}).then(function(response) {
// console.log("获取接口微信配置信息",response.data);
let data=response.data;
// 配置wxConfig配置项
that.wxConfig["appId"]=data.appId;
that.wxConfig["nonceStr"]=data.nonceStr;
that.wxConfig["signature"]=data.signature;
that.wxConfig["timestamp"]=data.timestamp;
// 监听微信分享
that.wxShare();
})
}
4. 处理H5网页在微信内二次分享就,点击右上角三个点,监听分享到朋友圈/微信好友事件
// 监听微信分享
wxShare(){
let that=this;
//that.$wx 必须执行过步骤一的操作
let wx=that.$wx;
// 获取当前域名地址
let href=window.location.href;
// 配置签名wx.config属性
wx.config(this.wxConfig);
// 发生错误触发
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
// 接口校验成功触发
wx.ready(function(){
// 判断当前客户端版本是否支持指定JS接口
wx.checkJsApi({
// 需要检测的JS接口列表
jsApiList: [
"updateAppMessageShareData",
"updateTimelineShareData",
"onMenuShareTimeline",
"onMenuShareAppMessage"
], // 需要检测的JS接口列表,所有JS接口列表见附录2,
success: function(res) {
// 以键值对的形式返回,可用的api值true,不可用为false
// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
// console.log("检测接口是否可用=================",res);
},
fail(err){
// console.log("检测接口是否错误=================",err);
}
});
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
//需在用户可能点击分享按钮前就先调用(自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容(1.4.0))
wx.updateTimelineShareData({
title:"标题" , // 分享标题
link: "", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: "", // 分享图标,必须是https网络路径,不能大于20kb
success: function () {
// 设置成功
// uni.showToast({
// title:"分享成功",
// icon:"none"
// })
}
})
// 自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)
wx.updateAppMessageShareData({
title: "标题", // 分享标题
desc: "分享描述" , // 分享描述
link:href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: "", // 分享图标,必须是https网络路径,不能大于20kb
success: function () {
// 设置成功
}
})
});
}
注意:
微信分享文档地址:
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
1. 微信公众号需要配置js安全域名白名单,ip白名单
2. 缩略图必须是https网络路径,不能大于20kb,否则在安卓机h5分享的时候,缩略图不显示
3. 配置项 wx.config 里面的数据尽量从后端获取;传递当前页面的全路径,包含页面中的参数,传给给后端人员,生成配置项;
例如:http://www.u.net/h5?id=1
4. 或者可以传递当前页面的域名地址,域名地址末尾处加上"/"
例如:http://www.u.net/
笔者向后端传递的是注意事项第三点:当前页面的全路径,至于是注意事项第四点,未作测试,感兴趣的可以尝试一下。
微信H5分享外部链接,缩略图不显示的更多相关文章
- 微信浏览器的html5页面显示配置等问题汇集 1,禁止微信浏览器分享页面链接 (定点更新)
公司新需求,要求从安卓IOS应用分享到微信的链接页面不允许二次转发,所以开始编程第一步,上网找资料... 网上大神就是多,不消两分钟,找到方案,很简单,上代码先: wx.config({ debug: ...
- 手动制作微信h5分享活动页面
现在网上有很多自动制作h5宣传页的网站,可以通过传图,点几下鼠标就可以制作一个集动画.生产二维码等各种功能于一身的h5微信宣传页.对于运营来讲,非常方便,没有技术门槛,不足之处就是只有特定的动画效果, ...
- .NET微信自定义分享标题、缩略图、超链接及描述的设置方法
前端Js引用: <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> ...
- 微信支付之微信H5支付(坑,ajax不支持重定向跳转)
这里讲的是 微信h5支付, 是微信以外的手机浏览器调用微信h5支付 h5支付: H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起 ...
- 黄聪:详解申请微信h5支付方法,开通微信h5网页支付接口(转)
版权声明:图文并茂的微信小程序教程!欢迎转载,请保留作者名字和链接:商业合作请联系子恒老师助理 QQ : 2334512685 https://blog.csdn.net/towtotow/artic ...
- 详解申请微信h5支付方法,开通微信h5网页支付接口(转)
现在大街小巷的商家都在使用微信支付,但是一些商家使用的是个人微信收款,这个虽然很便利,但是如果你想要数据统计汇总,让客户在网络上在线付款,就需要用到微信的h5支付. 微信h5支付 今天子恒老师跟你分享 ...
- js-禁止微信H5页面点击右上角菜单时出现“复制链接”,且分享仅支持微信分享
禁止微信H5页面点击右上角菜单时出现“复制链接”,这个问题已经影响到我很久很久了,起码有2年了, 昨天写H5活动的时候,需求有一个是:可分享,但是禁止复制活动链接, 这一下,就逼我务必好好研究研究了. ...
- H5微信自定义分享链接(设置标题+简介+图片)
起源:最近公司在做招募广告的html5页面,然后做出来后,产品提出一个问题,需要分享出去的链接是卡片形式,内容也要自己定义,这下就难到我了,因为是第一次遇到这种需求,果断百度,然而,我就像大家一样,看 ...
- H5之外部浏览器唤起微信分享
最近在做一个手机站,要求点击分享可以直接打开微信分享出去.而不是jiathis,share分享这种的点击出来二维码.在网上看了很多,都说APP能唤起微信,手机网页实现不了.也找了很多都不能直接唤起微信 ...
- 让淘宝链接在微信中分享,GO
老婆开了个淘宝店,小卖家的心理大家都知道,一开始的小店总是没有光顾,吸引流量成了重中之中. 所以她到处发链接,微信里发了好多条,可是没过多久有好友微她,问她发的时什么,为什么都是打不开的.结果直接傻眼 ...
随机推荐
- vue之插槽-slot
1.背景 2.slot简单使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- 哈希基础知识学习-python版
哈希 哈希表 根据key直接进行访问的无序数据结构,复杂度为O(1) 哈希表的实现---字典 初始化 d1 = dict() 查找 #使用中括号[]进行查找,括号内为特定的键, 键-值 dic = { ...
- 【技术积累】如何处理Feign的超时问题
在使用Feign进行微服务之间的通信时,由于网络延迟等原因,可能会出现请求超时的情况.为了解决这个问题,我们可以对Feign进行配置,设置超时时间. 配置Feign的超时时间 在使用Feign时,我们 ...
- elementui 修改合计行样式
<style scoped> /deep/.el-table .el-table__footer-wrapper .cell { text-align: right } </styl ...
- Python新手爬虫四:爬取视频
老样子,先上最后成功源码(在D盘下创建'好看视频'文件夹,直接运行即可获取视频): import sys import re,os import requests from you_get impor ...
- Python爬虫常用库介绍(requests、BeautifulSoup、lxml、json)
1.requests库 http协议中,最常用的就是GET方法: import requests response = requests.get('http://www.baidu.com') pri ...
- bacnet mstp设备数据 转IEC61850项目案例
目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 使用YABE软件读取BACNET MSTP设备信息 2 4 配置网关采集BACNET MSTP数据 4 5 用IEC61850协议转发数据 ...
- 【YashanDB知识库】用户密码带@字符时exp和imp无法使用
[问题分类]数据导入导出 [关键字]YAS-00404.数据导入导出.密码.特殊字符@.exp.imp [问题描述] 当用户密码带@字符时,使用exp和imp导入导出数据,使用转义符仍然出现报错 且y ...
- C#/.net core “hello”.IndexOf(“\0”,2)中的坑
先想想看,你认为下面代码返回值是多少? "hello".IndexOf("", 2); "hello".IndexOf("\0&q ...
- JavaScript – ES6-ES2023 大杂烩
前言 一年半没有写 JS 了, 今天开始来个大复习, 顺便把这么多年零零散散的知识点做成笔记. 练练字. ES 3, 5, 6, 2017, 2018... ES 6 等于 ES2015 ES 7 等 ...