作者:小白菜 | 来源:互联网 | 2023-09-17 17:24
微信公众号酒酒酒搜索 “微信H5分享外部链接,缩略图不显示” 查看原文
前言:最近做了一款推广茶的APP软件,展厅、产品需要分享功能;从APP内分享到H5网页;微信内打开H5网页,点击微信内右上角三个点,可再次分享;
注意:大多数情况下,点击右上角三个点,再次分享后,缩略图不显示,需要做特殊处理。
废话结束,正文开始,以下页面是在H5页面中执行。
前置条件:
开发环境:windows
开发框架:uni-app , H5+,nativeJS
编辑器:HbuilderX 2.8.13
兼容版本:安卓,IOS已作测试
正式进入开发:
- 首先引入微信JS-SDK
1.1 在项目的跟目录下执行npm代码:npm install jweixin-module --save
1.2 之后在main.js 里面导入JS-SDK文件,代码如下
import Vue from 'vue'
import App from './App'
import wx from "jweixin-module";
Vue.prototype.$wx=wx;
- 在需要进行再次分享的h5页面做如下代码处理;
在vue的data函数中给wx.config()一个初始化的配置项
data() {return {wxConfig:{debug: true, appId: '', timestamp:'' , nonceStr: '', signature: '',jsApiList: ["updateAppMessageShareData","updateTimelineShareData","onMenuShareTimeline","onMenuShareAppMessage"] }}
}
- 像后端人员请求 wx.config 配置项,timestamp前端人员可自己获取,也可以从后端返回
3.1 前端人员通过window.location.href获取当前页面路径,传递给后端返回配置信息
getWxConfigInfo(){let that=this;let url=window.location.href;that.$http.post('Wx/getsignpackage', {url:url}, {'load': false}).then(function(response) {let data=response.data;that.wxConfig["appId"]=data.appId;that.wxConfig["nonceStr"]=data.nonceStr;that.wxConfig["signature"]=data.signature;that.wxConfig["timestamp"]=data.timestamp;that.wxShare();})
}
- 处理H5网页在微信内二次分享就,点击右上角三个点,监听分享到朋友圈/微信好友事件
wxShare(){let that=this;let wx=that.$wx;let href=window.location.href;wx.config(this.wxConfig);wx.error(function(res){});wx.ready(function(){wx.checkJsApi({jsApiList: [ "updateAppMessageShareData","updateTimelineShareData","onMenuShareTimeline","onMenuShareAppMessage"], success: function(res) {},fail(err){}});wx.updateTimelineShareData({ title:"标题" , link: "", imgUrl: "", success: function () {}})wx.updateAppMessageShareData({title: "标题", desc: "分享描述" , link:href, imgUrl: "", success: function () {}})});
}
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
- 微信公众号需要配置js安全域名白名单,ip白名单
- 缩略图必须是https网络路径,不能大于20kb,否则在安卓机h5分享的时候,缩略图不显示
- 配置项 wx.config 里面的数据尽量从后端获取;传递当前页面的全路径,包含页面中的参数,传给给后端人员,生成配置项;
例如:http://www.u.net/h5?id=1 - 或者可以传递当前页面的域名地址,域名地址末尾处加上"/"
例如:http://www.u.net/
笔者向后端传递的是注意事项第三点:当前页面的全路径,至于是注意事项第四点,未作测试,感兴趣的可以尝试一下。