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 相关文章推荐
js 限制数字 js限制输入实现代码
Dec 04 Javascript
js实现发送验证码后的倒计时功能
May 28 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
Aug 15 Javascript
Vue.js动态组件解析
Sep 09 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 Javascript
基于React实现表单数据的添加和删除详解
Mar 14 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
微信小程序 swiper组件构建轮播图的实例
Sep 20 Javascript
axios向后台传递数组作为参数的方法
Aug 11 Javascript
Vue2.0实现简单分页及跳转效果
Jul 29 Javascript
Vue 自适应高度表格的实现方法
May 13 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+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
PHP新手入门学习方法
2011/05/08 PHP
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
动态加载jquery库的方法
2014/02/12 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
python 文件和路径操作函数小结
2009/11/23 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
解读python logging模块的使用方法
2018/04/17 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
python实现简单遗传算法
2020/09/18 Python
Python识别验证码的实现示例
2020/09/30 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
入党自我鉴定范文
2013/10/04 职场文书
客户经理岗位职责
2013/12/08 职场文书
项目开发计划书
2014/01/09 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
银行贷款承诺书
2014/03/29 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
未中标通知书
2015/04/17 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书