微信分享到朋友圈&微信分享给好友自定义图文信息原效果:预期效果:参考:微信开发者文档js-sdk需要准备:**微信认证公众号****已注册域名**步骤:后台需要实现的:1、登录微信公众平台,进入“公众号设置”的“功能设置”填写“JS接口安全域名”,(调用的url必须在js界面,安全域名就可以)2、登录后,可以在“开发者中心”查看相应的界面权限。大部分接口都可以通过认证的公众号进行调整。3、生成js-sdk的权限签名:jsapi_ticket参考js-sdk权限签名文档前端要做的事情:1、在需要调用JS接口(支持https)的页面引入如下JS文件:http://res.wx.qq.com/open/js/...备注:支持AMD/CMD标准模块加载方式加载2.前??端通过发送请求获取签名权限或嵌入后台语言在html中(题主公司直接使用的嵌入式php),因为安全问题只能通过后台实现签名权限3.通过config接口注入权限验证配置,参数由后台提供,切记上线后将选项debug设置为false。所有API的返回值将显示在客户端警报上。如果想查看传入的参数,可以在PC端打开,参数信息会通过log打印出来,只会在PC端打印。appId:'',//必填,公众号唯一标识timestamp:,//必填,生成签名的时间戳nonceStr:'',//必填,用于生成签名的随机字符串signature:'',//必填,签名jsApiList:[]//required,需要使用的JS接口列表});所有需要使用JS-SDK的页面都必须先注入配置信息,否则无法调用(同一个url只需要调用一次,改url的SPA的webapp就可以使用了每次url变化时调用,目前Android微信客户端不支持pushState新的H5特性,所以使用pushState实现web应用页面会导致签名失败,此问题将在Android6.2)修复。4.通过ready接口处理验证成功,如果验证失败,则进入错误回调函数wx.ready(function(){//config信息验证通过后,会执行ready方法,所有接口调用必须在config接口获取结果后获取,config是client端的异步操作,所以如果需要在页面加载时调用相关接口,必须在ready函数中调用相关接口,保证正确execution.对于用户触发时调用的接口,可以直接调用,不需要放在ready函数中。});5.通过error接口处理校验失败。校验失败可能是签名过期或者接收不到wx.error(function(res){//如果config信息校验失败,会执行error函数,如果签名过期,校验失败,具体错误信息可以在config的debug模式下查看,也可以在返回的res参数中查看。对于SPA,可以在这里更新签名。});6、分享代码请写在ready函数中注意不要诱发分享等违法行为。对于诱导分享的行为,公众号的接口权限将被永久撤销。朋友圈代码//获取“分享到朋友圈”按钮点击状态,自定义分享内容界面wx.onMenuShareTimeline({title:'',//分享标题link:'',//分享链接,域名或路径链接必须对应当前页面公众号JS安全域名同imgUrl:'',//分享图标的图片地址需要填写绝对路径www.xxx.com/images/xxx.jpgsuccess:function(){//回调用户确认分享后执行的函数},cancel:function(){//用户取消分享后执行的回调函数}});分享给好友代码wx.onMenuShareAppMessage({title:'',//分享标题desc:'',//分享描述link:'',//分享链接,链接的域名或路径必须与公众号当前页面对应的JS安全域名imgUrl:'',//分享图标的图片地址需要填写绝对路径www.xxx.com/images/xxx.jpgtype:'',//分享类型,音乐,视频或链接,如果不填,默认为linkdataUrl:'',//如果类型为音乐或视频,则必须提供数据链接,默认为空success:function(){//用户确认分享后执行的回调函数},cancel:function(){//用户取消分享后执行的回调函数}});自己写的时候遇到的bug:因为前后端没有分离,通过config接口注入权限验证配置时,需要在html文件中写js代码获取参数。如果单独写一个js文件,看不懂上面的代码,但是可以把所有的代码都指出来。如有错误,请指出。如果你看到它们,你就会改变它们。希望对您有所帮助!
