微信分享网页的时候,希望分享出来的链接是标题+描述+缩略图,微信开发代码示例里已提供了方法,但只适用于动态页面。由于dedecms是生成了静态文件,其实我想使用ajax获取jssdk参数也能也能实现微信分享功能了,在这里分享给大家。
jssdk的步骤业务流程是这样滴:
1:在微信公众号后台配置js 安全域名,即需要引入jssdk的页面域名。 需要在域名根目录下放置微信的检测文件。
3:后台开发人员生成签名传递给前台
4:前端页面引入script方式 jssdk文件
5:通过ajax获取config 配置,完成config 配置后即可使用jssdk的各项功能了。
再补充啰嗦一句:
确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。
如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去‘#‘hash部分的链接(可用location.href.split(‘#‘)[0]获取,
而且需要encodeURIComponent,后台decodeURIComponent解码),
因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,
如果不是动态获取当前链接,将导致分享后的页面签名失败。
前台HTML代码示例:
var url=encodeURIComponent(window.location.href.split(‘#‘)[0]);//分享成功之后再次分享,微信会再url附带额外参数造成二次分享签名错误,这里处理下避免config:invalid signature签名失效
$.ajax({
type : "get",
url : "http://xxx/jssdk.php?url="+url,//替换网址,xxx根据自己jssdk文件位置修改
dataType : "jsonp",
jsonp: "callback",
jsonpCallback:"success_jsonpCallback",
success : function(data){
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印
<