关于微信分享百分百可以使用 jsdkios存在的问题

安卓普通调用jsdk就不会存生微信签名失败的结果,上代码

share_weixn.js // jsdk m-ui组件已导入引用就行

//weixin-js-sdk应用
const wx = require('weixin-js-sdk')
import { Toast } from 'mint-ui'
export default {
    data() {
        return {
            latitude:'',
            longitude:'',
        }
    },

    methods: {
        wechatShare(info) {  // 授权分享
            const ts = this;
            // 判断苹果手机
            let _url = ''
            if (window.__wxjs_is_wkwebview === true) {
                _url = window.location.href.split('#')[0] || window.location.href
                _url = _url.replace('')
            } else {
                _url = window.location.href
            }
            var u = navigator.userAgent;
            var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

            if (isiOS) {
                _url = JSON.parse(sessionStorage.getItem("share_link"))
            }

        // 访问后台接口获取微信参数
        ts.$axios.post(this.baseURL + "/api/wx/jsapi", {url: encodeURIComponent(_url)}).then(res => {
            wx.config({
                    debug: false,
                    appId: res.data.data.appId, // 必填,公众号的唯一标识
                    timestamp: res.data.data.timestamp, // 必填,生成签名的时间戳
                    nonceStr: res.data.data.nonceStr, // 必填,生成签名的随机串
                    signature: res.data.data.signature, // 必填,签名,见附录1
                    jsApiList: [
                    'previewImage',
                    'hideAllNonBaseMenuItem',
                    'showMenuItems',
                    'onMenuShareTimeline',
                    'onMenuShareAppMessage',
                    'chooseWXPay'
                    ]
                });
            }).catch(err => {
                console.log(err)
            })
            wx.ready(() => {
                const share_title = info.title
                const share_desc = info.desc
                const share_link = info.link
                const share_img = info.img
                wx.showOptionMenu()
                wx.onMenuShareTimeline({
                title: share_title, // 分享标题
                link: share_link, // 分享链接
                imgUrl: share_img, // 分享图标
                success: function () {
                    Toast('已成功分享到朋友圈')
                },
                cancel: function () {
                    Toast('已取消分享')
                }
                })
                wx.onMenuShareAppMessage({
                title: share_title, // 分享标题
                desc: share_desc, // 分享描述
                link: share_link, // 分享链接
                imgUrl: share_img, // 分享图标
                success: function () {
                    Toast('已成功分享给您的朋友')
                },
                cancel: function () {
                    Toast('已取消分享')
                }
                })
            })
        },
    }
}

      var u = navigator.userAgent;
      var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

       if (isiOS) {
           _url = JSON.parse(sessionStorage.getItem("share_link"))
      }
	
	share_link在session做一个存储在刷新页面 和index.vue页面调用替换掉 _url
	在启用微信分享的时候调用成功

ios的针对首次进入的快壳不会改变用记录的方法可以有效的解决分享的问题。

还有遇到图片跨域问题在链接打开图片这些需要跨域后台https支持就行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值