羊仔
羊仔
  • 发布:2019-08-12 11:37
  • 更新:2022-08-24 15:58
  • 阅读:12213

nui-app h5微信分享的jweixin demo

分类:uni-app

第一步:npm install jweixin-module --save
第二步:在main.js里或者具体的页面这样写

import jswx from 'jweixin-module/out/index.js'  
 let wx_config = “后台返回的config”  

                     jswx.config(  
                     {  
                         debug:false,  
                         appId:wx_config.appId, // 必填,公众号的唯一标识  
                         timestamp:wx_config.timestamp , // 必填,生成签名的时间戳  
                         nonceStr: wx_config.nonceStr, // 必填,生成签名的随机串  
                         signature: wx_config.signature,// 必填,签名  
                         jsApiList:wx_config.jsApiList // 必填,需要使用的JS接口列表          
                     }                                 
                     );  
            jswx.ready(()=>{  
                                          //分享给朋友  
                    jswx.onMenuShareTimeline({  
                        title: 'xxxx', // 分享标题  
                        link: 'https://www.xxx.com', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致  
                        imgUrl: 'https:///www.xxx.com/icon.png', // 分享图标  
                        success: function () {  
                        // 用户点击了分享后执行的回调函数  
                    },  
                     });      
                                         //分享朋友圈  
                     jswx.onMenuShareAppMessage({  
                            title: 'xxxx', // 分享标题  
                            desc: 'xxxx', // 分享描述  
                            link: 'https://www.xxx.com', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致  
                        imgUrl: 'https:///www.xxx.com/icon.png', // 分享图标  
                            success: function () {  
                             uni.showToast({  
                                    title: '分享成功',  
                                    duration: 2000  
                                });  
                            }  
                            });  
                })  

//以上

亲测可用,再有问题就是后台的锅了,怼他们。。。。。还有一个,如果一切正常报:invalid Signature ,那有可能是后台需要获取你前端当前页面的href,否则一直会报这个错,你获取window.location.href给它,如果是tp5的话,应该是

$url = ‘当前链接(前端获取分享那页的链接:window.location.href,传过来这里)’//这步非常重要,官方文档都没有的  
$string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";  

    $signature = sha1($string);

生成签名的这个位置

最终效果

4 关注 分享
1***@163.com 5***@qq.com damdmen qq1563204347

要回复文章请先登录注册

羊仔

羊仔 (作者)

回复 1***@qq.com :
hash
2019-08-15 16:22
1***@qq.com

1***@qq.com

回复 羊仔 :
我按照你写的这个来,二次分享还是有问题。对了,请问下你是用history还是hash
2019-08-15 14:15
羊仔

羊仔 (作者)

回复 5***@qq.com :
https://blog.csdn.net/qq_37235823/article/details/86476723 试试这个
2019-08-15 11:21
5***@qq.com

5***@qq.com

回复 羊仔 :
还有个问题请教你,uni-app h5复制链接只能获取到首次进入页面时的页面路径,有没有办法获取到子路径?
2019-08-15 11:13
1***@qq.com

1***@qq.com

回复 羊仔 :
不是的,就是H5微信公众号网页,我试着用你说的这个看看行不行
2019-08-15 10:56
羊仔

羊仔 (作者)

回复 1***@qq.com :
你的是app分享吧,app分享主要是后台配置,前端拿来用就行,后台配置没问题基本没什么
2019-08-15 10:49
羊仔

羊仔 (作者)

回复 5***@qq.com :
是的 每一页的url都需要传给后台 后台生成不同的config给你,微信的机制就这样
2019-08-15 10:48
1***@qq.com

1***@qq.com

我用的新的接口,获取签名的url也解码了,hash模式下的。ios第一次点击可以,二次分享就不行,而且还区分ios系统版本。。。折腾了好几天,哎
2019-08-15 09:36
5***@qq.com

5***@qq.com

如果我项目中有一遍的页面都是可以分享的,那是不是每个页面都要重新获取config所需的参数?
2019-08-15 09:30
羊仔

羊仔 (作者)

回复 3***@qq.com :
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
2019-08-15 08:50