一、微信分享

1.准备工作

APPID公众号id、申请好友分享接口、ip白名单、js接口安全域名设置(必须是通过备案)。要先登录微信公众平台进入“公众号设置”的功能设置里填写“JS接口域名”

2.引入js

注意:支持使用AMD/CMD标准加载方法

<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

3.通过config接口注入权限验证配置

所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需要调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushShate的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题在Android6.2修复)

wx.config({debug: true,         //开启调试模式,调用所有的api的返回值会在客户端alert出来,若要查看传入的参数,可以在PC端打印出来appId: '',           //必填,公账号的唯一标识timestamp: '',       //必填,生成签名的时间戳nonceStr: '',        //必填,生成签名的随机串signature: '',       //必填,签名jsApiList: [         //必填,需要使用js列表,否则无法分享成功'onMenuShareTimeline',     //朋友圈'onMenuShareAppMessage',   //朋友'onMenuShareQQ',           //QQ'onMenuShareWeibo',       //QQ空间]
})

4.通过ready接口处理成功验证

wx.ready(function(){//config信息验证后会执行ready方法,所有接口调用必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中
});

5.通过error接口处理失败验证

wx.error({//config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名
});

js代码

var data = {title: '',summary: '',pic: '',url: '',success: function(){getWeixin() ;//用户确认分享后执行的回调函数},cancel: function(){//用户取消分享后执行的回调函数}
}wx.config({swapTitleInWX: true,appId: "<?php echo $weixin_package['appid'];?>",timestamp: "<?php echo $weixin_package['timestamp'];?>",nonceStr: "<?php echo $weixin_package['noncestr'];?>",signature: "<?php echo $weixin_package['signature'];?>",jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo',]
})wx.ready(function () {wx.onMenuShareTimeline(data);wx.onMenuShareAppMessage(data);wx.onMenuShareQQ(data)wx.onMenuShareWeibo(data)
})

注意点:
title,建议在14个字以内图片尺寸: 300*300像素;图片格式:大小不超过10kB,不支持GIF格式;会取当前页面body内最前面的一张符合条件的图片对标题简要解读,建议20字以内link:’’, //分享链接,改链接域名或路径必须与当前页面对应的公账号JS安全域名一致


二、QQ分享

QQ是通过head里面的标签来识别分享的图标和标题,涉及到h5微数据的一个属性itemprop,

<meta itemprop="name" content="标题"/>
<meta itemprop="description" name="description" content="描述"/>

在js中的应用:获取完数据后自定义分享

/*QQ分享*/
var shareName = '分享标题';
var shareDesc= '分享描述';
var sharePic= '分享图片路径';
var metaStr = '<meta itemprop="name" content="'+shareName+'"/><meta name="description" itemprop="description" content="'+shareDesc+'"/><meta itemprop="image" content="'+sharePic+'"/>';
$('head').append(metaStr);
$('title').html(shareName);

三、微信分享实例

export function wxShare() {let shareTitle = '马优晨是好人'let shareInfo = '马优晨是大好人'let shareUrl ='https://profile.csdnimg.cn/9/E/B/1_qq_24147051'wx.ready(function() {//分享给朋友wx.onMenuShareAppMessage({title: shareTitle,desc: shareInfo,link: window.location.href,imgUrl: shareUrl,trigger: function(res) {// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回//alert('用户点击发送给朋友');},success: function(res) {},cancel: function(res) {//alert('已取消');},fail: function(res) {alert(JSON.stringify(res))}})//分享到朋友圈wx.onMenuShareTimeline({title: shareTitle,link: window.location.href,imgUrl: shareUrl,trigger: function(res) {// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回//alert('用户点击分享到朋友圈');},success: function(res) {},cancel: function(res) {//alert('已取消');},fail: function(res) {alert(JSON.stringify(res))}})//分享到QQwx.onMenuShareQQ({title: shareTitle, // 分享标题desc: shareInfo, // 分享描述link: location.href, // 分享链接imgUrl: shareUrl, // 分享图标success: function() {// 用户确认分享后执行的回调函数},cancel: function() {// 用户取消分享后执行的回调函数}})//分享到微博wx.onMenuShareWeibo({title: shareTitle, // 分享标题desc: shareInfo, // 分享描述link: location.href, // 分享链接imgUrl: shareUrl, // 分享图标success: function() {// 用户确认分享后执行的回调函数},cancel: function() {// 用户取消分享后执行的回调函数}})})wx.error(function(res) {//config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名console.log('微信分享失败,检查原因!', res)})
}

如上图函数,在main.js 直接执行即可wxShare()
如果需要 设置分享的 参数为变量,可以给 wxShare()传递参数,并把shareTitleshareInfoshareUrl 设置成参数接收即可。

H5微信分享朋友、朋友圈、QQ相关推荐

  1. php 分享微博,php微信分享到朋友圈、QQ、朋友、微博

    本文实例为大家分享了php微信分享到朋友圈.QQ.朋友.微博的具体代码,供大家参考,具体内容如下 前台代码 wx.config({ debug: false, appId: "{$signP ...

  2. php 微信转发朋友圈,php微信分享到朋友圈、QQ、朋友、微博

    本文实例为大家分享了php微信分享到朋友圈.QQ.朋友.微博的具体代码,供大家参考,具体内容如下 前台代码 wx.config({ debug: false, appId: "{$signP ...

  3. php分享朋友圈源码,php微信分享到朋友圈、QQ、朋友、微博

    本文实例为大家分享了php微信分享到朋友圈.QQ.朋友.微博的具体代码,供大家参考,具体内容如下 前台代码 wx.config({ debug: false, appId: "{$signP ...

  4. 微信分享到朋友圈、发送给朋友开发注意事项

    1.invalid url domain 当前页面所在域名与使用的appid没有绑定,请确认正确填写绑定的域名,如果使用了端口号,则配置的绑定域名也要加上端口号(一个appid可以绑定三个有效域名,见 ...

  5. uni-app使用vue3、ts小程序如何微信分享到朋友和朋友圈

    本文章向大家介绍uniapp 微信小程序实现微信分享,主要包括uniapp 微信小程序实现微信分享使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下. 实际使 ...

  6. php 微信转发朋友圈,php实现的微信分享到朋友圈并记录分享次数功能的讲解

    这篇文章主要介绍了php实现的微信分享到朋友圈并记录分享次数功能,结合实例形式分析了php微信分享功能接口调用及分享次数统计具体操作技巧,需要的朋友可以参考下 本文实例讲述了php实现的微信分享到朋友 ...

  7. 微信“分享到朋友圈”接口— wx.onMenuShareTimeline() 和 onMenuShareAppMessage — 分享给朋友接口

    微信"分享到朋友圈"接口-- wx.onMenuShareTimeline() 注意事项: 1. 图片大小要大于300pix才能显示: 2. 这个方法必须先config成功,然后再 ...

  8. java 朋友圈分享接口_微信分享到朋友圈接口

    微信分享到朋友圈接口遇到了问题,之前遇到的问题是"invalid domain",查了好久发现是域名没有备案.现在一切都正常了,微信打开网页也显示"config ok&q ...

  9. php 微信分享功能_php实现微信分享到朋友圈并记录分享次数功能

    在一些带有分销功能或者需要用微信裂变的程序中,经常需要用到微信分享并记录次数,这样就知道别人分享了多少次,小郭今天正好也在做这个,就记录一下这个原理和实现方法, 1.引入JS文件 2.通过config ...

  10. php判断朋友圈是否分享,php实现的微信分享到朋友圈并记录分享次数功能

    本文实例讲述了php实现的微信分享到朋友圈并记录分享次数功能.分享给大家供大家参考,具体如下: 1.引入js文件 2.通过config接口注入权限验证配置 3.通过ready接口处理成功验证 4.通过 ...

最新文章

  1. 让问答更自然 - 基于拷贝和检索机制的自然答案生成系统研究 | 论文访谈间 #02...
  2. Unity OnTriggerEnter不调用
  3. linux 字符下 上网,Linux下实现字符串截取方法总结(示例代码)
  4. 吴恩达神经网络和深度学习-学习笔记-32-卷积神经网络示例
  5. 拓端tecdat|电力消耗模型构建、分析和预测
  6. Shiro - RememberMe记住我功能实现
  7. RGB色彩模式-最广的颜色系统之一
  8. Thrift生成java、php代码报错Cannot use reserved language keyword: end
  9. 如何防止条码流水号打印出现重码漏码错码的防呆检错系统?
  10. 项目管理——如何制定生产计划控制生产进度
  11. 2023年整理:吉利车机安装安装第三方软件教程,笔记本或手机操作方法!
  12. 使用Charles 抓取数据包
  13. 欧拉角与旋转矩阵的转换关系
  14. 如何把一组计算机做成云,旧电脑如何变成云电脑?进来了解下云电脑
  15. 问题解决了,可是为什么呢?could not find the main class.program will exitmain
  16. python判断谁是小偷_警察抓了A、B、C、D四名偷窃嫌疑犯,但其中只有一人是真正的小偷。审问记录如下:...
  17. 全国电子商务人才专业化从业认证考试初级教程(公共基础教程)(全国电子商务人才丛业能力教育指定教材)
  18. opencv给图片加滑动条调节窗口大小
  19. DBDataSource platformDataSource has not registed!的问题
  20. 基于PHP+MYSQL的公司人事工资管理系统

热门文章

  1. Spark Standalone模式应用程序开发
  2. 算法和编程面试题精选 TOP50!(附代码+解题思路+答案)
  3. 聊聊JVM(二)说说GC的一些常见概念
  4. 052、overlay如何实现跨主机通信?(2019-03-19 周二)
  5. ES6 generator
  6. Ubuntu 16.04安装Cobbler 2.9
  7. Maven+Spring+CXF+Tomcat7 简单例子实现webservice
  8. aardio学习笔记-变量与常量
  9. Lucene6.0 创建索引及查询text简单实例
  10. React的Transaction浅析