之前一直碰到微信里消息里的文章或链接分享到朋友圈或微信好友后,链接的图标和标题都不是想要的(自定义);后来研究了一下微信公众号相关的SDK接入demo;微信在6.5之前的版本好像是微信自己抓取链接或文章的标题/图片(貌似是300*300),但是在6.5版本之后微信变得恶心了需要接入他的分享接口(SDK),效果如下:
接入微信分享SDK,可以将这四个参数自定义显示:标题,链接,描述,图标,都可以达到自定义的效果。
实现如下:
1.进入微信公众号取到你的yourAppID,yourAppSecret
2.下载微信分享SDK(见博客下方);
3.项目中引入SDK(我的项目是thinkphp框架);
3.1因为很多H5需要进行分享,所以通过yourAppID,yourAppSecret获取微信配置信息放入基础控制器类方便供任何被继承的类使用:
//微信分享--获取机密配置信息 ======PHP代码部分=======
protected function getWxShareConfig(){
$signPackage = array();
require THINK_PATH.'Extend/Wxsharesdk/jssdk.php'; //我的SDK放在ThinkPHP/Extend目录下
$jssdk = new JSSDK($this->_wxshare_Appid, $this->_wxshare_AppSecret);
//填写开发者中心你的开发者ID
$signPackage = $jssdk->GetSignPackage();
return $signPackage;
}
//需要分享的控制器类赋值
public function __construct() {
parent::__construct();
$wxShareConfig = $this->getWxShareConfig();
$this->assign("signPackage",$wxShareConfig);
}
3.2 //微信分享=======javascript代码部分=======
在需要调用JS接口的页面引入如下JS文件,(支持https)http://res.wx.qq.com/open/js/jweixin-1.2.0.js 建议将次js代码另存到自己项目的js
<script type="text/javascript" src="/Public/js/jweixin-1.2.0.js"></script>
<script>
wx.config({
debug: false, //调式模式,设置为ture后会直接在网页上弹出调试信息,用于排查问题
appId: '{$signPackage["appId"]}', // 建议后台传出,避免敏感信息泄露
timestamp: '{$signPackage["timestamp"]}',
nonceStr: '{$signPackage["nonceStr"]}',
signature: '{$signPackage["signature"]}',
jsApiList: [ //需要使用的网页服务接口
'checkJsApi', //判断当前客户端版本是否支持指定JS接口
'onMenuShareTimeline', //分享到朋友圈
'onMenuShareAppMessage', //分享给好友
'onMenuShareQQ', //分享到QQ
'onMenuShareQZone' //分享到qq空间
]
});
var share_title = '{$share["title"]}'; //分享的标题
var share_link = '{$share["link"]}'; //分享的链接
var share_imgUrl = '{$share["imgUrl"]}'; //分享的图片地址
wx.ready(function () { //ready函数用于调用API,如果你的网页在加载后就需要自定义分享和回调功能,需要在此调用分享函数。//如果是微信游戏结束后,需要点击按钮触发得到分值后分享,这里就不需要调用API了,可以在按钮上绑定事件直接调用。因此,微信游戏由于大多需要用户先触发获取分值,此处请不要填写如下所示的分享API
wx.onMenuShareTimeline({ //例如分享到朋友圈的API
title: share_title, // 分享标题
link: share_link, // 分享链接
imgUrl: share_imgUrl, // 分享图标-
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
wx.onMenuShareAppMessage({ //分享给好友
title: share_title, // 分享标题
link: share_link, // 分享链接
imgUrl: share_imgUrl, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
wx.onMenuShareQQ({ //分享到QQ
title: share_title, // 分享标题
link: share_link, // 分享链接
imgUrl: share_imgUrl, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
wx.onMenuShareQZone({ //分享到qq空间
title: share_title, // 分享标题
link: share_link, // 分享链接
imgUrl: share_imgUrl, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
});
wx.error(function (res) {
//alert(res.errMsg); //建议关闭错误输出,否则用户体验不太好
});
//大家可以自己试试,蛮好玩的,也不难!!!
相关推荐
接入微信公众号是开发的第一步,万事开头难,走好第一步,后面的路就更宽广。 1.公众平台测试帐号的使用 ...接入公众号时,微信公众平台需要验证开发者的身份,向开发者填写的URL发送一个GET请求,请求中包含
微信公众号开发接入SDK,原生PHP代码实现,已经实现各基础接口,是我最初给客户做开发的时候使用的,很适合刚入门的同学使用参考,有问题欢迎指正,谢谢。
微信公众号开发相关方法微信公众号开发相关方法微信公众号开发相关方法微信公众号开发相关方法微信公众号开发相关方法微信公众号开发相关方法微信公众号开发相关方法微信公众号开发相关方法微信公众号开发相关方法...
微信公众号禁止分享页面.如何禁止微信公众号分享页面
PHP微信公众号管理系统 PHP微信公众号管理系统 PHP微信公众号管理系统 PHP微信公众号管理系统 PHP微信公众号管理系统 PHP微信公众号管理系统 PHP微信公众号管理系统 PHP微信公众号管理系统 PHP微信公众号...
PHP微信公众号开发SDK
微信公众号开发的必须jar包,很完整
主要介绍了C#微信公众号开发之接收事件推送与消息排重的方法,详细分析了事件推送与消息排重的使用技巧,对微信开发有一定参考借鉴价值,需要的朋友可以参考下
C#版的微信公众号开发SDK Senparc.Weixin.MP几个关键类介绍如下: Entities/Request*.cs 用于接收微信平台自动发送到服务器的实体(发送过来的是XML),包括文本、位置、图片三类 Entities/Response*.cs 用于反馈...
微信公众号h5页面制作,微信公众号H5吸粉模板源码 。源码参考链接:www.pikao.cn
微信公众号 java 开发 sdk ,集合了微信公众号开发常用工具类,通用类,可以帮助开发者加快开发进度。
java 微信公众号开发入门 DEMO 可直接跑起来的 大家可以直接下载,然后练习一下。java 微信公众号开发入门 DEMO 可直接跑起来的 大家可以直接下载,然后练习一下。
微信公众号运营计划方案(最新范文模板) .pdf微信公众号运营计划方案(最新范文模板) .pdf微信公众号运营计划方案(最新范文模板) .pdf微信公众号运营计划方案(最新范文模板) .pdf微信公众号运营计划方案(最新范文模板)...
这是一款基于ThinkPHP6.0开发的微信公众号多域名回调系统。本系统有如下功能: 微信公众号多域名回调功能:微信公众号后台默认只能授权2个网页域名,用本系统突破这个限制,用同一个公众号对接无限多个网站。网站...
Asp.Net版微信公众号开发源码Demo_90.rar Asp.Net版微信公众号开发源码Demo_90.rar
其实作为H5想要做语音识别,自认为还说有各种弊端得,同时还是微信公众号里面,如果小程序得话,或许会简单一点,但是这里是在公众号里面开发,在这个过程中查阅个各种资料,其实里面得东西都大同小异,但是大多数并...
主要介绍了Java实现微信公众号获取临时二维码功能,结合实例形式分析了java调用微信公众号接口实现临时二维码生成功能相关操作技巧,需要的朋友可以参考下
微信公众号开发案例,使用的是SpringMVC+MyBatis框架。附带数据库。