都写到 head 里面

    1. <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
    2. <script type="text/javascript">
    3. var u = navigator.userAgent, app = navigator.appVersion;
    4. var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
    5. var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
    6. var isiosapp = u.indexOf('Safari') == -1 && u.indexOf('Language') == -1 && u.indexOf('MicroMessenger') == -1;
    7. var isanapp = u.indexOf('igetapp') > -1;
    8. function is_weixin(){
    9. var ua = navigator.userAgent.toLowerCase();
    10. if(ua.match(/MicroMessenger/i)=="micromessenger") {//alert(1);
    11. return true;
    12. } else {//alert(2)
    13. return false;
    14. };
    15. };
    16. if(is_weixin()){
    17. var link = document.URL;// 分享链接
    18. var type = "link";
    19. var dataUrl = "";//"${obj.dataUrl}";
    20. var img_url = "https://guzhanfang.oss-cn-beijing.aliyuncs.com/action/share.jpg";// 分享图标
    21. wx.config({
    22. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    23. appId: "${obj.appId?!''}", // 必填,公众号的唯一标识
    24. timestamp: "${obj.timestamp?!''}", // 必填,生成签名的时间戳
    25. nonceStr: "${obj.nonceStr?!''}", // 必填,生成签名的随机串
    26. signature: "${obj.signature?!''}", // 必填,签名,见附录1
    27. jsApiList: [
    28. 'checkJsApi',
    29. 'onMenuShareTimeline',
    30. 'onMenuShareAppMessage',
    31. 'onMenuShareQQ',
    32. 'onMenuShareWeibo',
    33. 'onMenuShareQZone',
    34. 'hideMenuItems',
    35. 'showMenuItems',
    36. 'hideAllNonBaseMenuItem',
    37. 'showAllNonBaseMenuItem',
    38. 'translateVoice',
    39. 'startRecord',
    40. 'stopRecord',
    41. 'onVoiceRecordEnd',
    42. 'playVoice',
    43. 'onVoicePlayEnd',
    44. 'pauseVoice',
    45. 'stopVoice',
    46. 'uploadVoice',
    47. 'downloadVoice'
    48. ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 ngrok
    49. });
    50. wx.ready(function(){
    51. // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
    52. //分享到朋友圈
    53. wx.onMenuShareTimeline({
    54. title: "共读训练营", // 分享标题
    55. link: link, // 分享链接,该链接域名必须与当前企业的可信域名一致
    56. imgUrl: img_url , // 分享图标
    57. dataUrl: dataUrl,
    58. success: function () {
    59. // 用户确认分享后执行的回调函数
    60. // $.post("zhuanfa",{"id":audioId},function(data){console.log("转发成功!")});
    61. },
    62. cancel: function () {
    63. // 用户取消分享后执行的回调函数
    64. }
    65. });
    66. //分享到朋友
    67. wx.onMenuShareAppMessage({
    68. title: "共读训练营", // 分享标题
    69. desc: "我参加了今今乐道共读训练营,快和我一起读书吧", // 分享描述
    70. link: link, // 分享链接,该链接域名必须与当前企业的可信域名一致
    71. imgUrl: img_url, // 分享图标
    72. type: type, // 分享类型,music、video或link,不填默认为link
    73. dataUrl: dataUrl, // 如果type是music或video,则要提供数据链接,默认为空
    74. success: function () {
    75. // 用户确认分享后执行的回调函数
    76. // $.post("zhuanfa",{"id":audioId},function(data){console.log("转发成功!")});
    77. },
    78. cancel: function () {
    79. // 用户取消分享后执行的回调函数
    80. }
    81. });
    82. });
    83. }
    84. </script>