vue-cli项目使用微信分享

本文介绍如何在Vue项目中实现微信分享功能,包括引入官方SDK、封装通用分享方法及使用步骤。

本例是vue-cli构建项目下使用微信分享

一、index.html中引入微信官方分享js

<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

 

二、在src下的assets/js文件夹下新建wx.jsapi.js文件,把分享做成公用方法

使用axios来发送请求,参照https://blog.youkuaiyun.com/web_xyk/article/details/79933024配置vue-cli项目的axios

代码:

import axios from 'axios'

export default {

    wxShowMenu: function() {

        axios.post('http://test.xyk.com/wxtest').then(function(res) {

            var getMsg = res.data.data;

            wx.config({

                debug: false, //生产环境需要关闭debug模式

                appId: getMsg.appId, //appId通过微信服务号后台查看

                timestamp: getMsg.timestamp, //生成签名的时间戳

                nonceStr: getMsg.nonceStr, //生成签名的随机字符串

                signature: getMsg.signature, //签名

                jsApiList: [ //需要调用的JS接口列表

                    'onMenuShareTimeline', //分享给好友

                    'onMenuShareAppMessage', //分享到朋友圈

                    'showMenuItems',

                    'hideMenuItems'

                ]

            });

            wx.ready(function() {

                wx.checkJsApi({

                    jsApiList: ["showMenuItems"],

                    success: function(res) {

                        wx.showMenuItems({

                            menuList: [

                                'menuItem:share:appMessage', //发送给朋友

                                'menuItem:share:timeline' //分享到朋友圈

                            ]

                        });

                    }

                });

                //分享到朋友圈

                wx.onMenuShareTimeline({

                    title: "分享描述", // 分享标题

                    desc: "分享描述", //分享描述

                    link: getMsg.shareLink, // 分享链接

                    imgUrl: getMsg.imgUrl // 分享图标

                });



                //分享给朋友

                wx.onMenuShareAppMessage({

                    title: "分享描述", // 分享标题

                    desc: "分享描述", // 分享描述

                    link: getMsg.shareLink, // 分享链接

                    imgUrl: getMsg.imgUrl // 分享图标

                });

            });

        })

    }

}

其中分享链接和图片地址要用绝对地址,图片用方形,大小至少200*200px以上

 

6月份新版微信客户端发布后,用户从微信内的网页分享消息给微信好友,以及分享到朋友圈,开发者将无法获知用户是否分享完成。所以不再写成功和失败的回调方法。查看具体公告

!!原有的 wx.onMenuShareTimeline、wx.onMenuShareAppMessage、wx.onMenuShareQQ、wx.onMenuShareQZone 接口,即将废弃。新的方法:

import axios from 'axios'

export default {

    wxShowMenu: function() {

        axios.post('http://test.xyk.com/wxtest').then(function(res) {

            var getMsg = res.data.data;

            wx.config({

                debug: false, //生产环境需要关闭debug模式

                appId: getMsg.appId, //appId通过微信服务号后台查看

                timestamp: getMsg.timestamp, //生成签名的时间戳

                nonceStr: getMsg.nonceStr, //生成签名的随机字符串

                signature: getMsg.signature, //签名

                jsApiList: [ //需要调用的JS接口列表

                    'onMenuShareTimeline', //分享给好友

                    'onMenuShareAppMessage', //分享到朋友圈

                    'showMenuItems',

                    'hideMenuItems'

                ]

            });

            wx.ready(function() {

                wx.checkJsApi({

                    jsApiList: ["showMenuItems"],

                    success: function(res) {

                        wx.showMenuItems({

                            menuList: [

                                'menuItem:share:appMessage', //发送给朋友

                                'menuItem:share:timeline' //分享到朋友圈

                            ]

                        });

                    }

                });

                //分享到朋友圈

                wx.updateTimelineShareData({

                    title: "分享描述", // 分享标题

                    desc: "分享描述", //分享描述

                    link: getMsg.shareLink, // 分享链接

                    imgUrl: getMsg.imgUrl // 分享图标

                });



                //分享给朋友

                wx.updateAppMessageShareData({

                    title: "分享描述", // 分享标题

                    desc: "分享描述", // 分享描述

                    link: getMsg.shareLink, // 分享链接

                    imgUrl: getMsg.imgUrl // 分享图标

                });

            });

        })

    }

}

三、main.js中引入并挂在vue的原型上

代码:
import WXConfig from './assets/js/wx.jsapi' // 微信分享
Vue.prototype.WXConfig = WXConfig;

 

四、使用

代码:
this.WXConfig.wxShowMenu();

 

 

<think>我们正在回答用户关于如何使用vue-cli创建uniapp项目的问题。 根据用户需求,我们需要提供清晰的步骤。 注意:uniapp官方推荐使用HBuilderX创建项目,但也支持使用vue-cli。这里我们按照用户要求,使用vue-cli。 步骤: 1. 确保环境:安装Node.js和vue-cli 2. 全局安装vue-cli(如果尚未安装) 3. 使用vue-cli创建uniapp项目 4. 运行项目 具体步骤: 1. 环境准备 - 安装Node.js(建议版本12.0以上) - 安装npm(通常随Node.js一起安装) 2. 安装vue-cli 打开终端(命令行),执行: ```bash npm install -g @vue/cli ``` 3. 创建uniapp项目 在终端中,进入要创建项目的目录,然后执行: ```bash vue create -p dcloudio/uni-preset-vue my-project ``` 这里`my-project`是项目名称,可以自定义。 执行命令后,会出现预设模板选择。你可以选择默认模板(包含基本uniapp项目结构)或者选择自定义模板(如包含uni-ui等)。 4. 进入项目目录并运行 ```bash cd my-project npm run dev:%PLATFORM% ``` 其中`%PLATFORM%`是你要运行的目标平台,例如: - `h5`:H5平台 - `mp-alipay`:支付宝小程序 - `mp-weixin`:微信小程序 - 等等 例如,运行到H5: ```bash npm run dev:h5 ``` 5. 开发完成后,可以使用以下命令进行打包: ```bash npm run build:%PLATFORM% ``` 注意:使用vue-cli创建的项目,其目录结构与HBuilderX创建的项目略有不同,但开发方式基本一致。 引用:uni-app官方文档提供了使用vue-cli创建项目的详细说明[^1]。 相关问题: 1. 使用vue-cli创建uniapp项目使用HBuilderX创建有什么区别? 2. 如何配置不同的平台运行? 3. 在vue-cli创建的项目中如何安装和使用uni-ui?</think>### 如何使用 Vue CLI 创建 UniApp 项目 以下是使用 Vue CLI 创建 UniApp 项目的完整步骤: #### 1. **环境准备** - 安装 [Node.js](https://nodejs.org/) (建议 LTS 版本) - 安装 Vue CLI 工具: ```bash npm install -g @vue/cli ``` #### 2. **创建项目** 通过官方预设模板初始化项目: ```bash vue create -p dcloudio/uni-preset-vue my-uniapp-project ``` - `my-uniapp-project` 替换为你的项目名称 - 安装过程会提示选择模板(默认选择标准模板即可) #### 3. **项目结构** 生成的核心目录结构: ``` ├── src │ ├── pages # 页面目录 │ ├── static # 静态资源 │ ├── App.vue # 根组件 │ └── main.js # 入口文件 ├── package.json # 依赖配置 └── vue.config.js # Vue CLI 配置 ``` #### 4. **运行项目** 根据目标平台执行对应命令: ```bash cd my-uniapp-project # 运行到 H5 npm run dev:h5 # 运行到微信小程序 npm run dev:mp-weixin # 运行到支付宝小程序 npm run dev:mp-alipay ``` #### 5. **编译打包** 生成生产环境代码: ```bash # H5 打包 npm run build:h5 # 微信小程序打包 npm run build:mp-weixin ``` 打包后的文件位于 `/dist` 目录下。 #### 注意事项 1. **微信小程序**:需用微信开发者工具导入 `dist/dev/mp-weixin` 目录 2. **H5 部署**:打包后的文件可通过 Web 服务器直接部署 3. **平台差异**:部分 API 需注意平台兼容性(通过 `uni.getSystemInfoSync().platform` 判断) UniApp 官方提供了 Vue CLI 创建项目的详细文档说明[^1]。 --- ### 相关问题 1. 使用 Vue CLI 创建的 UniApp 项目与 HBuilderX 创建的项目有何区别? 2. 如何在 Vue CLI 创建的 UniApp 项目中集成第三方 UI 库(如 uView)? 3. UniApp 项目如何配置多环境变量(开发/测试/生产)? 4. 如何解决 UniApp 在 Vue CLI 项目中跨平台编译的常见兼容性问题? 5. UniApp 项目如何优化打包体积和提升 H5 加载速度?
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值