js-sdk微信分享功能的实现(vue)

代码

mounted(){   //在mounted里执行
    let ua = navigator.userAgent.toLowerCase();  //判断是否是微信端
    if (ua.match(/MicroMessenger/i) == "micromessenger") {
        this.getWxShare()
    }
}

methods:{
    getWxShare(){
        let url = window.location.href.split('#')[0]
        axios.get(`${common.coper}/getWxShareParam?url=${url}`).then(res=>{
            if(res.data.code==200){
                let wxInfo=res.data.data
                // let videoInfo=this.videoDetails  //①将动态数据赋值给变量供微信内置函数使用,因videoDetails是其他接口异步请求来的,所以请保证在其他接口执行完毕videoDetails赋了值之后,再执行此行代码,否则videoDetails没有值即为undefined,会导致微信分享功能失效(重点:注意异步请求)
                wx.config({
                    debug: false, // 是否开启调试模式
                    appId: wxInfo.appid, //appid
                    timestamp: wxInfo.timestamp, // 时间戳
                    nonceStr: wxInfo.nonceStr, // 随机字符串
                    signature: wxInfo.signature, // 签名
                    jsApiList: [
                        'updateAppMessageShareData',
                        'updateTimelineShareData',
                        'onMenuShareTimeline',
                        'onMenuShareAppMessage',
                    ] // 需要使用的JS接口列表
                })
                wx.ready(()=>{  //这里本来是wx.ready(function(){,为了更方便使用数据,我改成了箭头函数。若是坚持用普通函数,请在上方①处进行赋值(请看注意事项),在下方直接这样使用 title:videoInfo.title即可
                    wx.onMenuShareAppMessage({
                        title: this.videoDetails.title?this.videoDetails.title:'',     // 分享标题
                        desc: this.videoDetails.name?`电影主演:${this.videoDetails.name}`:'',     // 分享描述
                        link: url,     // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                        imgUrl: this.videoDetails.image?this.videoDetails.image:'',     // 分享图标
                        success: function () {
                            console.log("成功")
                        },
                        cancel:function(){
                            console.log("取消")
                        }
                    })
                })
                wx.error(function(res){
                    console.log(res.errMsg)
                })
            }
        }).catch()
    },
}

坑:

1、若报错63002(意思是无效的签名),很大因素可能就是域名不符合的问题,要与后端沟通好。
2、目前新的api,updateAppMessageShareData我用起来有一些问题。暂时用旧的api,onMenuShareAppMessage等以后旧的彻底废弃后再使用新api并看看bug是否解决

原文地址:https://www.cnblogs.com/huihuihero/p/12132952.html

时间: 2024-11-08 20:26:20

js-sdk微信分享功能的实现(vue)的相关文章

Android微信分享功能实例+demo

Android微信分享功能实例 1 微信开放平台注册 2 获得appId,添加到程序中,并运行程序 3 使用应用签名apk生成签名,添加到微信开放平台应用签名,完成注册 4 测试分享功能. 有问题请留言  o(∩_∩)o 哈哈 代码如下: package com.wx; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import a

微信开发】【Asp.net MVC】-- 微信分享功能

[微信开发][Asp.net MVC]-- 微信分享功能 2017-01-15 09:09 by stoneniqiu, 12886 阅读, 15 评论, 收藏, 编辑 内嵌在微信中的网页,右上角都会有一个默认的分享功能.如下图所示,第一个为自定义的效果,第二个为默认的效果.实现了自定义的分享链接是不是更让人有点击的欲望?下面讲解下开发的过程. 一.准备,设置js接口安全域名 这需要使用微信的jssdk,先需要在微信公众号后台进行设置:公众号设置-->功能设置-->JS接口安全域名.打开这个页

Vue+Vue-router微信分享功能

在使用vue和vue-router路由框架已经开发过好几个项目了,其中也遇到不少坑,有些坑各种搜也没有找到非常理想的答案. vue学习相对来说还是比较简单,官方文档说明非常清楚(https://cn.vuejs.org/v2/guide/),多做一些Demo就可以熟练上手了,并且现在也有好多框架(vuex,MintUI,Element,iView等),根据项目需要自行学则,因此本人也就没有怎么写过关于vue这方面的文章. 这次主要是把自己在微信中分享遇到的问题分享一下,Android机器中分享不

微信开发(一)基于Wx-java的微信分享功能

最近在做微信服务号开发,简单总结一下,便于自己学习积累和分享给大家: 环境介绍: Spring+ Spring MVC +Mybatis 开发语言: JAVA 微信公众平台的开发中,微信只公布了一个基于Http协议的接口和加解密的算法sdk,在开发的过程中可以自己根据需求来配置数据,调用相关接口,也可以引用比较成熟的基于java语言的微信公众号sdk.笔者引用的是目前比较流行的 weixin-java-tools 可以参考:点击打开链接 项目中引入了weixin-java-mp 就可直接调用相关

在App中添加微信分享功能

随着微信平台运用越来越普遍,在app中往往需要将看到的消息发送给微信好友,分享到朋友圈,因此就需要添加微信分享的功能.我们可以通过微信的开发者平台上的相关文档来实现这个简单的功能. 1.在微信开发者平台注册应用程序的id,通过审核后可以获得一个appid 2.有了appID后下载最新的微信终端sdk文件,SDK文件包括 libWeChatSDK.a,WXApi.h,WXApiObject.h 这三个.资料下载页面: https://open.weixin.qq.com/cgi-bin/showd

在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)

最近公司的大厅要重做,我协助主程一起制作新大厅和新框架,前面制作的编辑器也派上了用场.等全部功能做完后我会再写一个复盘,这两天主程在忙于写热更新的功能,所以把接入分享SDK功能的任务交给了我,ShareSDK官网的文档比较分散,而且关于Unity的文档比较简略,所以还是有不少的坑.写篇博客分享一下,并加强理解记忆. 第一步,先去ShareSDK的官网下载最新版本的ShareSDK(完全免费).地址:http://www.mob.com/ 我们选择ShareSDK For Unity3D,页面会直

【微信开发】【Asp.net MVC】-- 微信分享功能

内嵌在微信中的网页,右上角都会有一个默认的分享功能.如下图所示,第一个为自定义的效果,第二个为默认的效果.实现了自定义的分享链接是不是更让人有点击的欲望?下面讲解下开发的过程. 一.准备,设置js接口安全域名 这需要使用微信的jssdk,先需要在微信公众号后台进行设置:公众号设置-->功能设置-->JS接口安全域名.打开这个页面之后你会看到下面的提示.需要先下载这个文件并上传到指定域名的根目录. 这个文件里面是一个字符串,从名称看是用来校验用的.先上传了这个文件,你才能保存成功.这样你就可以使

微信分享功能开发代码整理

微信分享对接php项目: 做微信分享开发要注意所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名” 1,Jssdk类包的引入Jssdk.class.php生成注册微信官方分享按钮的权限参数,代码如下: <?php // +---------------------------------------------------------------------- // | 微信分享核心包类 // +--------

微信分享功能不可用+不能产生回调

之前微信分享一直正常可用,可最近报出微信分享后不能按规定的图片描述链接分享,而且不能产生回调导致不能通过分享增加用户参与活动次数,老代码如下: document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { window.shareData = { "imgUrl": "{$shareimg}", "timeLineLink": "{$shareli