vue 调用微信分享 遇到的问题

关于微信分享网上有一堆的教程,就不详细说了,大致如下:

1.安装

cnpm install weixin-js-sdk --save-dev

2.新建一个share.js,与main.js放在同一层级(我只是偷懒,方便调用)

import wx from ‘weixin-js-sdk‘

exports.install = function (Vue, options) {
  Vue.prototype.shareList = function (imgUrl, link, desc, title) {
    // 分享
    var url = encodeURIComponent(location.href.split(‘#‘)[0])
    Vue.http.post(‘http://fubala.xiemy.cn/api/‘ + ‘Wechat/getSignPackage‘, {url: url}).then(function (res) {
      res = res.data.data

      wx.config({
        debug: false, // true:调试时候弹窗
        appId: res.appId, // 微信appid
        timestamp: res.timestamp, // 时间戳
        nonceStr: res.nonceStr, // 随机字符串
        signature: res.signature, // 签名
        jsApiList: [
          // 所有要调用的 API 都要加到这个列表中
          ‘onMenuShareTimeline‘, // 分享到朋友圈接口
          ‘onMenuShareAppMessage‘, //  分享到朋友接口
          ‘onMenuShareQQ‘, // 分享到QQ接口
          ‘onMenuShareWeibo‘ // 分享到微博接口
        ]
      })
      wx.checkJsApi({
        jsApiList: [
          // 所有要调用的 API 都要加到这个列表中
          ‘onMenuShareTimeline‘, // 分享到朋友圈接口
          ‘onMenuShareAppMessage‘, //  分享到朋友接口
          ‘onMenuShareQQ‘, // 分享到QQ接口
          ‘onMenuShareWeibo‘ // 分享到微博接口
        ],
        success: function (res) {
        }
      })

      wx.ready(function () {
        // 微信分享的数据
        var shareData = {
          imgUrl: imgUrl, // 分享显示的缩略图地址
          link: link, // 分享地址
          desc: desc, // 分享描述
          title: title, // 分享标题
          success: function () {
            // 分享成功可以做相应的数据处理
            alert(‘分享成功‘)
            alert(‘appId:‘ + res.appId)
            alert(‘timestamp:‘ + res.timestamp)
            alert(‘nonceStr:‘ + res.nonceStr)
            alert(‘signature:‘ + res.signature)
          },
          fail: function () {
            alert(‘调用失败‘)
          },
          complete: function () {
            alert(‘调用结束‘)
          }
        }
        wx.updateTimelineShareData(shareData)
        wx.updateAppMessageShareData(shareData)
        wx.onMenuShareQQ(shareData)
        wx.onMenuShareWeibo(shareData)
      })
      wx.error(function (res) {
        // config信息验证失败会执行error函数,如签名过期导致验证失败,
        // 具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,
        // 对于SPA可以在这里更新签名。
        alert(‘分享失败‘)
      })
    }, function (res) {
      alert(res)
      console.log(parseInt(res.code))
    })
  }
}

3.main.js中引用

import share from ‘./share‘
Vue.use(share)

4.组件中调用分享,在created或者mounted中调用,方法如下

this.shareList(image, link, title,sub_title) // image 为分享的图片,必须是完整路径

但是

使用的时候出现一些问题:

base.js?d7e6:19 Uncaught (in promise) TypeError: Cannot read property ‘config‘ of undefined
    at eval (share.js?d7e6:19)

很奇怪,因为我是按照教程写的啊,怎么会这样,然后我就好奇的输出wx这个变量

得到的结果,可想而知

wx:undefined

这时候我心里有千万只神兽奔腾而过,还有种不知所措的感觉

网上找了很久,还真给我找出来一个可能性:

微信为了方便用户使用,将官方的jssdk发布到了npm上,有一个叫weixin-js-sdk的,但我们需要使用的不是这个,网上很多在vue中引用的是这个,但是这个是为commonjs发布的版本,只能通过require引入。

let wx = require(‘weixin-js-sdk‘);

实际为了方便es6使用,官方发布了一个weixin-jsapi,这个才是我们能在vue中引用的jssdk。

cnpm install weixin-jsapi --save-dev
import wx from ‘weixin-jsapi‘

原文地址:https://www.cnblogs.com/wylj/p/9922904.html

时间: 2024-08-03 03:25:32

vue 调用微信分享 遇到的问题的相关文章

Vue+Vue-router微信分享功能

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

Vue 调用微信扫一扫功能

这个功能呢就是公众号里面埋一个网页,有个功能扫一扫,调用微信的js-sdk来弄: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 官方文档 第一步绑定域名,就是你在公众号登录之后要设置域名,还有白名单,这个喊后端去弄,前端又不晓得哪些是白名单,域名是好多 第二部:安装js-sdk的包(用npm 或yarn安装npm install weixin-js-sdk --save) 第三部:配置wx.config 这个里

iOS应用调用微信分享收藏功能遇到的问题

当我们需要在自己的APP里实现内容分享或收藏到微信时,我们在微信开发者平台通过注册账号,申请审核APP.通过后,我们按照微信开发者文档集成SDK就可以实现这些功能了.但在测试时发现,文字分享收藏,音乐分享收藏,网页分享收藏都能顺利的实现(具体实现代码请自行参考微信官方文档,这里不再细说):图片分享和视频分享不能如愿实现.研究了半天,发现微信开发者须知里有一段这样的话:                           Q:为什么使用微信SDK分享信息给微信好友,有的消息发送成功,有的消息发送失

Android调用微信登陆、分享、支付

前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调过于麻烦,还必须要在指定包名下的actvity进行回调,所以我在这里写一篇博客,有这个需求的朋友可以借鉴一下,以后自己别的项目有用到也有个找资料的地方. 一.微信登陆分三个步骤: 1).微信授权登陆  2).根据授权登陆code 获取该用户token  3).根据token获取用户资料  4).接收微信的请求及返回值 如果你的程序需要接收微信发送的请求,或者接收发送到微信请求的响应结果,需要下面3步操作: a. 在你的包名相应目录

Bitmap 生成微信分享图标

android开发调用微信分享接口在设置分享图标时,必须对原图进行压缩处理,否则分享出来的图标会不清晰.据本人了解,微信分享的图标大小是132px*132px的. 下面给出方法 1 public static Bitmap crateWeixinShareIcon(Bitmap bmp, int target) { 2 int width = bmp.getWidth(); 3 int height = bmp.getHeight(); 4 5 if (width < target || hei

Android集成微信分享的要点及源码示例

如今,社会化分享成了App必不可少的一个功能,而其中最重要的莫过于微信分享,由于微信庞大的用户群及活跃度,因此我们的App往往都需要集成微信分享,微信开放平台也提供了相应的分享SDK.鉴于看到很多人说调不起微信分享,下面就来分享下自己的经验以及在集成微信分享过程中需要注意的地方,最终会提供自己封装好的微信分享源码示例. 其实集成的步骤在微信开放平台的文档指南中已经写的很清楚了: 1.申请AppID.这一步需要在微信开放平台注册你的App就可以了,注意的是需要使用正式的keystore签名你的Ap

java菜鸟之微信分享

前言:我终于理解了什么叫做教科书:教科书就是把一些简单容易的知识写成一堆谁都看不懂的书,这,就简称"教科书" 这些天接触到微信分享以及回调的问题,因为之前没接触过,所以这次做这个分享,碰了一点点壁,特意写下博客,以便以后再次回顾,本篇由本菜鸟写下,不好之处,敬请原谅! 想到接入微信分享,各位第一想到的是什么?肯定是看官方文档啊,然而,我发现,是我智商太低?还是微信的 API 写得太高级?我只能说:"fuck you nai nai"! 那只能百度找教程了,找了很多,

ThinkPHP3.2.3集成微信分享JS-SDK实践

先来看看微信分享效果: 在没有集成微信分享js-sdk前是这样的:没有摘要,缩略图任意抓取正文图片 在集成微信分享js-sdk后是这样的:标题,摘要,缩略图自定义 一.下载微信SDK开发包 下载地址:http://demo.open.weixin.qq.com/jssdk/sample.zip 二.设置安全域名 所有的微信JS接口都只能在公众号绑定的域名下调用.登录微信公众平台,点击左边的"公众号设置",切换到"功能设置",在"JS接口安全域名"

Vue单页式应用(Hash模式下)实现微信分享

前端微信分享的基本步骤: 一.绑定域名: 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名".这个不多说,微信开发的都应该清楚. 二.引入js文件: 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js.请注意,如果你的页面启用了https,务必引入 https://res.wx.qq.com/open/js/jweixi