分享

写一个具体实例

https://github.com/i5ting/wx_jsapi_sign

获取签名信息

  1. app.post('/getsignature', function(req, res){
  2. var url = req.body.url;
  3. console.log(url);
  4. signature.getSignature(config)(url, function(error, result) {
  5. if (error) {
  6. res.json({
  7. 'error': error
  8. });
  9. } else {
  10. res.json(result);
  11. }
  12. });
  13. });

页面

  1. <script src="jweixin-1.0.0.js"></script>
  2. <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  3. <script>
  4. // 使用 jq 动态加载 微信配置
  5. $.ajax({
  6. url: '/getsignature' // 此处url请求地址需要替换成你自己实际项目中服务器数字签名服务地址
  7. ,
  8. type: 'post',
  9. data: {
  10. url: location.href.split('#')[0] // 将当前URL地址上传至服务器用于产生数字签名
  11. }
  12. }).done(function(r) {
  13. // 返回了数字签名对象
  14. console.log(r);
  15. console.log(r.appid);
  16. console.log(r.timestamp);
  17. console.log(r.nonceStr);
  18. console.log(r.signature);
  19. // 开始配置微信JS-SDK
  20. wx.config({
  21. debug: true,
  22. appId: r.appId,
  23. timestamp: r.timestamp,
  24. nonceStr: r.nonceStr,
  25. signature: r.signature,
  26. jsApiList: [
  27. 'checkJsApi',
  28. 'onMenuShareTimeline',
  29. 'onMenuShareAppMessage',
  30. 'onMenuShareQQ',
  31. 'onMenuShareWeibo',
  32. 'hideMenuItems',
  33. 'chooseImage'
  34. ]
  35. });
  36. // 调用微信API
  37. wx.ready(function() {
  38. var sdata = {
  39. title: '那年|测试微信分享及相关API',
  40. desc: '那年|测试微信分享及相关API',
  41. link: 'http://game.4gshu.com/deep-love/index2.html',
  42. imgUrl: 'http://game.4gshu.com/xuangedan/other-project/2015-01-06/img/share-wx-logo.jpg',
  43. success: function() {
  44. alert('用户确认分享后执行的回调函数');
  45. },
  46. cancel: function() {
  47. alert('用户取消分享后执行的回调函数');
  48. }
  49. };
  50. wx.onMenuShareTimeline(sdata);
  51. wx.onMenuShareAppMessage(sdata);
  52. // 添加图片
  53. $('#addPic').on('click', function() {
  54. wx.chooseImage({
  55. success: function(res) {
  56. var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
  57. // var imgs = localIds.split(',');
  58. localIds.forEach(function(v, i) {
  59. alert(v);
  60. $('#picList').append('<li><img src="' + v + '" alt="" width="50"></li>');
  61. });
  62. }
  63. });
  64. });
  65. });
  66. });

FAQ

1、如果微信公众号没有认证,无法自定义分享标题和图片;

https://segmentfault.com/q/1010000002488298

2、填写域名

更多