微信公众号,H5自定义分享

uni_app端代码 vue

import jweixin from '../../jweixin'
//在根目录下创建jweixin文件夹,内放index.js,下载微信jsdk,链接http://res.wx.qq.com/open/js/jweixin-1.4.0.js,最新版本为1.6.0,但是不能使用会报错
shareWechat(){
                let that = this;
                uni.request({
                    url: app.appUrl +'index/getWechatSignature?token='+this.token,//获取服务端签名接口
                    method: 'POST',
                    data: {
                        url: encodeURIComponent(location.href.split('#')[0])//js动态获取当前域名,此域名需要在公众号端配置
                    },
                    success(res) {
                        let s = res.data.data
                        console.log(s)
                        jweixin.config({
                            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                            appId: 'appid', // 必填,公众号的唯一标识
                            timestamp: s.timestamp, // 必填,生成签名的时间戳
                            nonceStr: s.noncestr, // 必填,生成签名的随机串
                            signature: s.signature,// 必填,签名
                            jsApiList: ["onMenuShareTimeline", "onMenuShareAppMessage"] // 必填,需要使用的JS接口列表
                        });
                        jweixin.ready(function () {
                            //获取“分享给朋友”按钮点击状态及自定义分享内容接口(即将废弃)
                            jweixin.onMenuShareAppMessage({
                                title: that.info.title, // 分享标题
                                desc: that.info.intro, // 分享描述
                                link: location.href, // 分享链接
                                imgUrl: that.author.headimgurl, // 分享图标
                                type: '', // 分享类型,music、video或link,不填默认为link
                                dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
                                success: function (e) {
                                    console.log(e)
                                }
                            })
                        })
                    }
                })
            }

服务端获取access_token,JsapiTicket,sha1签名等方法,官方给出的有例子
demo.open.weixin.qq.com/jssdk/sampl...

注意,注意,注意:
js传url需要encodeURIComponent(),后端需要urldecode(),url也是需要动态获取的,固定写死签名是不会成功的

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!