vue 开发企业微信整合案例分析


Posted in Javascript onDecember 02, 2019

本文实例讲述了vue 开发企业微信整合。分享给大家供大家参考,具体如下:

概述

手机端程序可以和企业微信进行整合,我们也可以使用企业微信JSSDK功能,实现一些原生的功能。

整合步骤

在整合之前需要阅读 整合步骤。

http://work.weixin.qq.com/api/doc#10029

1.引入JSSDK

npm i -S weixin-js-sdk 这样就引入了微信sdk。

2.通过config接口注入权限验证配置

export function initWxConfig(vm){
  var url=_baseUrl + "/initConfig.do";
  var curUrl=location.href.split("#")[0];
  var params="url="+curUrl;
  vm.$ajax.post(url,params).then(res=>{
    var data=res.data;
    wx.config({ 
     beta: true,
     debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
     appId: data.appId, // 必填,公众号的唯一标识 
     timestamp: data.timestamp, // 必填,生成签名的时间戳 
     nonceStr: data.nonceStr, // 必填,生成签名的随机串 
     signature: data.signature, // 必填,签名,见附录1 
     jsApiList: [
       'chooseImage',
       'previewImage',
       'uploadImage',
       'downloadImage',
       'previewFile',
       'getLocation',
     ] 
    });
    wx.error(function (res) {
      console.log("调用微信jsapi返回的状态:"+res.errMsg);
    });
  }).catch(function(error) {
    //vm.errorToast(error,1000);
    console.info(error);
  })
}

服务端

initConfig.do 对应的代码。

这个微信需要绑定到一个应用中,我们需要定义应用的可信域名。

vue 开发企业微信整合案例分析

在企业微信登陆后,我们会记录一个应用的ID。

在服务端调用方法:

public static Map<String, String> getWxConfig(String url,String corpId,String secret) throws Exception { 
    TokenModel tokenModel = TokenUtil.getEntTicket(corpId, secret); 
    String timestamp = Long.toString(System.currentTimeMillis() / 1000); // 必填,生成签名的时间戳 
    String nonceStr = UUID.randomUUID().toString(); // 必填,生成签名的随机串 
    String ticket=tokenModel.getToken();
    String signature = ""; 
    // 注意这里参数名必须全部小写,且必须有序 
    String sign = "jsapi_ticket=" + ticket + "&noncestr=" + nonceStr+ "×tamp=" + timestamp + "&url=" + url; 
    try { 
      MessageDigest crypt = MessageDigest.getInstance("SHA-1"); 
      crypt.reset(); 
      crypt.update(sign.getBytes("UTF-8")); 
      signature = byteToHex(crypt.digest()); 
    } catch (NoSuchAlgorithmException e) { 
      e.printStackTrace(); 
    } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
    }
    Map<String, String> ret = new HashMap<String, String>();
    ret.put("appId", corpId); 
    ret.put("timestamp", timestamp); 
    ret.put("nonceStr", nonceStr); 
    ret.put("signature", signature); 
    return ret; 
}

3.这个配置代码在应用启动时执行。

import {initWxConfig} from '@/assets/app.js';

vue 开发企业微信整合案例分析

4.使用相应的API

wxImage(type){
      var self_=this;
      wx.chooseImage({
        sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
        sourceType: [type], // 可以指定来源是相册还是相机,默认二者都有
        success: function (res) {
          var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
            for(var i=0;i<localIds.length;i++){
            wx.uploadImage({
              localId: localIds[i], // 需要上传的图片的本地ID,由chooseImage接口获得
              isShowProgressTips: 1, // 默认为1,显示进度提示
              success: function (res) {
                var serverId = res.serverId; // 返回图片的服务器端ID
                var url=_baseUrl +"/wx/saveFile.do";
                var params="mediaId=" + serverId;
                self_.$ajax.post(url,params).then(res=>{
                  var data=res.data;
                  self_.handFile(data);
                });
              }
            });
          }
        }
      });
    }

选择相册或者拍照。

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
jQuery中prev()方法用法实例
Jan 08 Javascript
JavaScript中的闭包介绍
Mar 15 Javascript
理解Javascript文件动态加载
Jan 29 Javascript
JS获取和修改元素样式的实例代码
Aug 06 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
Dec 18 Javascript
微信小程序自定义带价格显示日历效果
Dec 29 Javascript
简单两步使用node发送qq邮件的方法
Mar 01 Javascript
扫微信小程序码实现网站登陆实现解析
Aug 20 Javascript
Vue.js下拉菜单组件使用方法详解
Oct 19 Javascript
vue实现计步器功能
Nov 01 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
Nov 12 Javascript
使用Cargo工具高效创建Rust项目
Aug 14 Javascript
vue 使用外部JS与调用原生API操作示例
Dec 02 #Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 #Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 #Javascript
angular8和ngrx8结合使用的步骤介绍
Dec 01 #Javascript
angular异步验证防抖踩坑实录
Dec 01 #Javascript
如何利用node.js开发一个生成逐帧动画的小工具
Dec 01 #Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 #Javascript
You might like
php与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
PHP自定义多进制的方法
2016/11/03 PHP
CI框架表单验证实例详解
2016/11/21 PHP
yii2 开发api接口时优雅的处理全局异常的方法
2019/05/14 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
另一个javascript小测验(代码集合)
2011/07/27 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
详解react-redux插件入门
2018/04/19 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
Python做文本按行去重的实现方法
2016/10/19 Python
python代码过长的换行方法
2018/07/19 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
django中media媒体路径设置的步骤
2019/11/15 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
介绍一下Ruby的多线程处理
2013/02/01 面试题
生产主管岗位职责
2013/11/10 职场文书
领导干部考察材料
2014/02/08 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
文化宣传方案
2014/03/13 职场文书
公司晚会主持词
2014/03/22 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
实现一个简单得数据响应系统
2021/11/11 Javascript
Vue2.0搭建脚手架
2022/03/13 Vue.js