h5页面内嵌js SDK实现微信分享

安装 jweixin 模块

npm install  jweixin-module --save

引入到页面

import jweixin from 'jweixin-module'

 

weiXinShareFn() {
                // 获取url
                const linkUrl = window.location.href
                    // 这里需要请求后端配置的接口
                    // 通过接口获取 appid、数字签名等
                    uni.request({
                        url: 'http://xxx/api/user/getWxConfig',
                        method: 'POST',
                        data: {
                            url: this.Url
                            // url:window.location.href
                        },
                        success: res => {
                            jweixin.config({
                                debug: false, // 调试模式 本地调试的时候可以改为true,可以在微信开发者工具中调试
                                appId: res.data.data.appId, // 公众平台申请的id
                                timestamp: res.data.data.timestamp, // 时间戳
                                nonceStr: res.data.data.nonceStr, // 随机字符串
                                signature: res.data.data.signature, // 签名
                                jsApiList: [ // 申请需要使用的api
                                    'checkJsApi',
                                    'updateAppMessageShareData',
                                    'updateTimelineShareData'
                                ]
                            })

                            jweixin.ready(() => {
                                jweixin.checkJsApi({
                                    jsApiList: [
                                        'updateAppMessageShareData',
                                        'updateTimelineShareData'
                                    ],
                                    success: function(res) {
                                        // alert("fontok")
                                    }
                                })
                                const shareData = {
                                    title: title, // 分享出去显示标题(可自定义)
                                    desc: descc, //分享详情描述(可自定义)
                                    link:linkUrl  //分享出去的链接 (可携带参数)
                                    imgUrl: img // 卡片分享 图片链接
                                }
                                //分享给朋友
                                jweixin.updateAppMessageShareData(shareData)
                                //分享到朋友圈
                                jweixin.updateTimelineShareData(shareData)
                            })
                        }
                    })
            },

最后在页面中调用该分享方法就可以了。

遇到的问题:

ios机型分享出去的链接不显示参数,andriod的可以正常显示。原因好像是苹果手机使用window.localtion.href获取的不是当前页面的路径,而是入口页面的链接,首页路径。具体说明可以百度看看。 

解决办法:

1.可以在调用了分享接口的页面组件中,判断是否是ios系统,如果是的话强制刷新一下当前页面。 

2.写一个函数处理ios的url 

getConfigUrl() {
                let u = window.navigator.userAgent;
                let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
                //安卓需要使用当前URL进行微信API注册(即当场调用location.href.split('#')[0])
                //iOS需要使用进入页面的初始URL进行注册,(即在任何pushstate发生前,调用location.href.split('#')[0])
                // let url = '';
                if (isiOS) {
                    this.Url = (`${window.localStorage.getItem('_iosWXConfig_') || window.location.href.split('#')[0]}`);//获取初始化的url相关参数
                } else {
                    this.Url = (window.location.href.split('#')[0]);
                }
            },

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值