热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信H5分享外部链接,缩略图不显示

微信公众号酒酒酒搜索“微信H5分享外部链接,缩略图不显示”查看原文前言:最近做了一款推广茶的APP软件,展厅、产品需要分享功能;从APP内分享到H5网页;微信内打开H5网页,点击微



微信公众号酒酒酒搜索 “微信H5分享外部链接,缩略图不显示” 查看原文
微信公众号查看原文
前言:最近做了一款推广茶的APP软件,展厅、产品需要分享功能;从APP内分享到H5网页;微信内打开H5网页,点击微信内右上角三个点,可再次分享;
注意:大多数情况下,点击右上角三个点,再次分享后,缩略图不显示,需要做特殊处理。
废话结束,正文开始,以下页面是在H5页面中执行。
前置条件:
开发环境:windows
开发框架:uni-app , H5+,nativeJS
编辑器:HbuilderX 2.8.13
兼容版本:安卓,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;

  1. 在需要进行再次分享的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"
]
}
}
}

  1. 像后端人员请求 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();
})
}

  1. 处理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/
    笔者向后端传递的是注意事项第三点:当前页面的全路径,至于是注意事项第四点,未作测试,感兴趣的可以尝试一下。


推荐阅读
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • 深入浅出 webpack 系列(二):实现 PostCSS 代码的编译与优化
    在前一篇文章中,我们探讨了如何通过基础配置使 Webpack 完成 ES6 代码的编译。本文将深入讲解如何利用 Webpack 实现 PostCSS 代码的编译与优化,包括配置相关插件和加载器,以提升开发效率和代码质量。我们将详细介绍每个步骤,并提供实用示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 本文详细介绍了在 React Native 开发过程中遇到的 'Could not connect to development server' 错误及其解决方法。该问题不仅影响开发效率,而且难以通过网络资源找到确切的解决方案。本文将提供详细的步骤,帮助开发者快速解决这一常见问题。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • feat: Enhances Jest Testing Capabilities with Snapshot Support ... [详细]
  • Vue CLI 初始化 Webpack 项目时,main.js 文件是如何被调用的? ... [详细]
  • Vue应用预渲染技术详解与实践 ... [详细]
  • 深入解析:React与Webpack配置进阶指南(第二部分)
    在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ... [详细]
  • 在GitHub上克隆vue-element-admin项目时遇到依赖安装错误
    在 GitHub 上克隆 vue-element-admin 项目后,使用 `npm install` 安装依赖时遇到了未知的 Git 错误。具体错误信息为 `npm ERR! code 128`,提示命令执行失败。这可能是由于网络问题、Git 配置不正确或某些依赖包的仓库地址无效导致的。建议检查网络连接、更新 Git 版本并确保所有依赖项的 URL 正确无误。 ... [详细]
author-avatar
BigBigBigBigPX
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有