微信jssdk---h5分享封装

作者: 我的弟弟叫泥鳅 | 来源:发表于2020-11-11 15:26 被阅读0次

说到微信分享,其实挺坑的,刚对接的时候,以为可以像app端一样,通过自己写好的actionSheet来取分享,后来仔细阅读发现,调用的分享竟然是微信自己右上角更多的那个分享,如果不写的话,右上角那三个点点里是不包含微信分享的,这真是,坑到奶奶怀里去了。
而且最新官方通知,废弃了一部分接口,但是实测,你的jsApiList中要是不写那俩废弃的,还会报错,可能是半瘫痪状态吧。


QQ截图20201111152738.png

我们的代码写在上一次的wechat.js中了。只不过是加了一点点微信分享的东西,签名还是利用initJssdk方法,客官请看:

import { getWxConfig } from 'api/index/index.js';
import { wxPay } from 'api/index/index.js';
import wx from 'weixin-js-sdk'
export default {
    //判断是否在微信中  
    isWechat: function() {
        var ua = window.navigator.userAgent.toLowerCase();
        if (ua.match(/micromessenger/i) == 'micromessenger') {
            // console.log('是微信客户端')
            return true;
        } else {
            // console.log('不是微信客户端')
            return false;
        }
    },
    //初始化sdk配置  这个上篇文章有详细讲解,就不赘述了
    initJssdk: function(callback, url) {
        console.log(url)
        //服务端进行签名
        let data = {
            url: encodeURIComponent(url)
        }
        getWxConfig(data).then(res => {
            if (res.status == 1000) {
                if (res.data) {
                    wx.config({
                        debug: false,
                        appId: res.data.appId,
                        timestamp: res.data.timestamp,
                        nonceStr: res.data.nonceStr,
                        signature: res.data.signature,
                        //这里把分享的apilist里加上分享的接口名称
                        jsApiList: [
                            'checkJsApi',
                            'onMenuShareTimeline',
                            'onMenuShareAppMessage',
                            'updateAppMessageShareData',
                            'updateTimelineShareData'
                        ]
                    });
                    //配置完成后,再执行分享等功能  
                    if (callback) {
                        callback(res.data);
                    }
                }
            }
        }).catch(err => {})
    },

    //this.$wechat.share(data,url)封装后调用
    //在需要自定义分享的页面中调用  
    share: function(data, url) {
        //data是我们传递过来的需要分享的内容。
        //url是当前页面路径
        url = url ? url : window.location.href.split('#')[0];
        //每次都需要重新初始化配置,才可以进行分享  
        this.initJssdk(function(callback) {
            wx.ready(function() {
                var shareObject = {
                    title: data.title,//// 分享标题
                    desc: data.des,//// 分享描述
                    link: data.url,//分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                    imgUrl: data.img,//// 分享图标
                    success: function(res) {
                        //业务回调
                    },
                    cancel: function(res) {
                        this.$toast({
                            icon: 'none',
                            title: '分享失败!',
                            duration: 1000
                        })
                    }
                };
                //分享给朋友及分享到QQ
                wx.updateAppMessageShareData(shareObject);
                //分享到朋友圈及分享到QQ空间  
                wx.updateTimelineShareData(shareObject);
            });
        }, url);
    },

}

我们看完代码会发现,分享其实也是那些操作,微信配置,签名。然后调用分享接口。只需要我们把握住它的api规则,这些都不是事儿。友情提示:细看代码中的注释,哈哈。
这样我们的微信分享就完成了,鉴于只能在微信环境内使用,个人觉得实在是意义不大,如果公司有条件的话,找一个实力雄厚的第三方来对接h5分享实在是再好不过了。或者你就挨个主流浏览器内对接分享,多个平台分享都对一遍,哈哈哈哈。
码文不易,望您给个赞!谢谢啦!希望对你有所帮助

相关文章

  • 微信jssdk---h5分享封装

    说到微信分享,其实挺坑的,刚对接的时候,以为可以像app端一样,通过自己写好的actionSheet来取分享,后来...

  • 文档

    分享 集成了微信,朋友圈,qq,qq空间,微博分享; 分享参数 封装在了 微信分享 官方地址 QQ分享 官方地址 ...

  • iOS开发-微信分享

    导入SKD 封装 前言:公司活动需要加入微信分享,有多处调用,就地封装了。微信开放平台 1. 导入SDK 1.在微...

  • 微信分享Js封装

    使用的时候,把里面的url前面部分的链接换成后台接口即可调用: 封装:

  • 封装微信公众号分享

    wx_gzh.js router.js中的配置 使用:将方法引入所需要的分享页面,然后调用下面的方法

  • 社会化登录分享-微信SDK接入

    本篇在基于之前封装的SocialSDK的项目上增加了微信SDK的登录授权和分享。简单介绍了微信登录分享的接入和使用...

  • H5 如何调用安卓方法

    当项目封装成APP需要拉起微信登录或者微信分享的时候,必须去调用安卓的方法才可以实现需求: 一:登录 二:分享 分...

  • 一行代码集成微信开放平台的轻量级封装库

    1、为了能够快速高效的在App里面集成使用微信开放平台的微信分享、微信登陆功能,进行轻量级封装,快速实现 2、CG...

  • 第三方登录分享库-ShareLoginSdk

    一、概述 ShareLoginSdk是一个封装了QQ、微信、微博登录和分享功能的库,分享支持纯文字、纯图片、网页(...

  • IOS微信的SDK封装 WechatManager-包含授权登录

    前言 昨天写了一篇支付宝的封装,今年就把之前写的WechatManager微信SDK封装也拿出来,做个分享吧,本着...

网友评论

    本文标题:微信jssdk---h5分享封装

    本文链接:https://www.haomeiwen.com/subject/iovebktx.html