企业微信开发:使用 JS-SDK 实现图像接口功能(六)
前言
本文主要是实现图像接口,之前我以为企业微信和微信应该大差不差的,结果这玩意坑还挺多,写篇文章记录一下自己踩过的坑,希望对你们有所帮助!这个地方就不介绍配置 wx.config 了详细请看上一篇文章“企业微信开发:使用 JS-SDK 配置 wx.config 实现屏蔽分享菜单功能(五)”
概述
前一段时间写了一个移动端的微信图像上传,然后最近需求有一个企业微信图像上传,我就寻思应该都是大差不差的,我就去把代码移植过来测试,结果发现这个区别还是有点大的,最主要的不同点还是在于 getLocalImgData 的调用
实现图像接口
HTML 前端部份
这是我准备好的页面,可以直接使用注意里边用到的 js 就好,css 可以自己随便写写。。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>调用企业微信图像上传接口</title><!--上传图片css--><link rel="stylesheet" href="../css/style.css" />
</head>
<body><header class="upload-hedaer"><a href="javaScript:history.back(-1)" class="upload-fh"></a><div>上传</div><div>···</div></header><section class="upload-section"><article class="upload-piclist"><div class="upload-file" id="uploadfile"></div></article></section><script src="../js/jweixin-1.2.0.js" type="text/javascript" charset="utf-8"></script><script src="../js/jquery-3.0.0.min.js" type="text/javascript" charset="utf-8"></script><script src="../js/wxconfig.js" type="text/javascript" charset="utf-8"></script>
</body>
<script type="text/javascript">/** 这个地方我们只需要在要使用的页面引用就 OK1.chooseImage:和拍照或从手机相册中选图接口2.getLocalImgData:获取本地图片接口**/ wx.config({debug: true, // 生产环境需要关闭debug模式appId: "[[${appId}]]", // appID = corpID 通过微信服务号/企业微信后台查看timestamp: "[[${timestamp}]]", // 生成签名的时间戳nonceStr: "[[${nonceStr}]]", // 生成签名的随机字符串signature: "[[${signature}]]", // 签名jsApiList: [ // 需要调用的JS接口列表'chooseImage','getLocalImgData']});
</script>
</html>
JavaScript JS 部份
这个地方我们单独写了一个 wx.config 通用文件,主要放的就是一些回调方法,可以看到我们上边并没有 ready 成功接口和 error 失败接口,因为都放到了 wx.config 里边
首先我们调用 chooseImage 因为我们是点击图片才触发这个方法,所以还要写一个点击事件,记得要写到 wx.ready 回调方法里边!!这样就获取到了安卓显示图片的内容
wx.ready(function(){//给上传图标绑定 onclick 事件$("#uploadfile").click(function(){// 调取接口wx.chooseImage({count: 1, // 默认9sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有defaultCameraMode: "normal",isSaveToAlbum: 1,success: function(res) {// 这个很重要var localIds = res.localIds;alert("获取到返回的本地 ID :"+localId)}});})
});
这里有一个容易出错的地方,一定要认真地去查看官方文档,不然可能会出现一个问题就是,微信可以上传并显示图片,企业微信可以上传但是不显示图片
企业微信的 getLocalImgData 接口是不支持安卓的!!!微信的可以。。。
所以这个地方我们需要使用 getLocalImgData 来获取 ios 显示内容,在上方我们已经拿到了安卓的图片路径
// 调用本地图片接口
wx.getLocalImgData({localId: res.localIds[0], // 图片的localIDsuccess: function(res) {var imageBase64 = res.localData;alert("获取 ios 显示内容:"+imageBase64)}
});
最后添加一个获取手机型号的 JS 的验证用来区分是苹果还是安卓
var u = navigator.userAgent;
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
完整示例
最后贴上完整的代码和运行截图!!!上方文件不附带样式,只做参考!!
wx.ready(function(){//给上传图标绑定 onclick 事件$("#uploadfile").click(function(){// 调取接口wx.chooseImage({count: 1, // 默认9sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有defaultCameraMode: "normal",isSaveToAlbum: 1,success: function(res) {var picCheck = document.getElementsByClassName('upload-piclist')[0];// 判断手机型类型var u = navigator.userAgent;var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端if(isiOS){// 调用本地图片接口wx.getLocalImgData({localId: res.localIds[0], // 图片的localIDsuccess: function(res) {var imageBase64 = res.localData;var html = document.createElement('div');html.innerHTML = '<img id="image" src=' + imageBase64 + ' alt="">';picCheck.appendChild(html);}});}else{var imageBase64 = res.localIds[0];var html = document.createElement('div');html.innerHTML = '<img id="image" src=' + imageBase64 + ' alt="">';picCheck.appendChild(html);}}});})
});
最后欢迎各位留言指教!!!
企业微信开发:使用 JS-SDK 实现图像接口功能(六)相关推荐
- 腾讯系:微信,公众号,小程序,企业微信开发知识概括
腾讯系:公众号,小程序,企业微信等等开发知识概括 企业微信 公众号 小程序 微信开放平台 总结 企业微信 第三方应用开发(sass服务商): 概述:第三方应用接口旨在方便企业微信管理员通过简单的操作来 ...
- 前端企业微信开发内嵌H5记录
前端企业微信开发内嵌H5记录(Vue) 文章目录 前端企业微信开发内嵌H5记录(Vue) 一.引入相应JS-SDK 1.JS-SDK 二.授权(网页授权) 1.构造网页授权链接 2.发起授权 3.注入 ...
- 企业微信开发H5页面授权 使用接口的问题
企业微信 h5踩坑指南 企业微信开发H5页面授权 使用接口的问题 开发企业微信的时候 h5页面需要获取登录用户的信息,这个时候就需要jsdk里面的 [开发文档] (https://work.weixi ...
- 微信、企业微信和支付窗 SDK 三合一,JeeWx-api 1.2.0 版本发布
JeeWx-API 1.2.0 版本发布,微信.企业微信和支付窗SDK三合一 摘要: JEEWX-API 是第一款JAVA版微信极速SDK,同时集成企业微信SDK,支付窗SDK,可以快速的基于她进行微 ...
- 微信及企业微信内嵌浏览器内核信息及H5跑分数据-企业微信开发
加我微信li570467731,拉你进二百多人企业微信开发同行群(文末有二维码). 企业微信开发三部曲: <企业微信应用开发概述篇(免费)>已完结: <企业微信开发第三方应用开发篇& ...
- 手把手教你springboot企业微信开发(三)之 weui、zepto、thymeleaf
手把手教你springboot企业微信开发(三)之 weui.zepto.thymeleaf weui zepto thymeleaf 这一篇主要事基础部分,概述一下weui.zepto.thymel ...
- 企业微信开发:获取 access_token(二)
前言 简单的用白话了解一下企业微信的作用,企业微信是腾讯微信团队为企业打造的专业办公管理工具.大致和钉钉差不多,适用于政府.企业等各类组织的一个产品,可以有效的帮您管理员工.个人感觉企业微信开发要 ...
- 服务器端缓存企业微信,企业微信开发
企业微信开发又以下三类,可以根据需要查看相应的文档 企业内部应用开发:开发内部使用应用,开发个性化办公应用 第三方应用开发:开发出来的应用可供其他企业使用 第三方应用开发.png 智慧硬件开发 企业内 ...
- 企业微信开发总结-获取通讯录
企业微信开发总结-获取通讯录 最近遇到个项目需求,需要能够获取到用户企业的通讯录,同步到我们系统中,这样就不用重复输入一批企业人员了.一开始想的很简单,实际研究下来发现企业微信比个人微信对接起来复杂多 ...
最新文章
- MySQL5.6多实例部署
- 通俗理解LDA主题模型
- scala中object和class关键字的区别
- Http怎么处理长连接
- deletion in request load scenario
- 使用Arquillian测试安全的EJB
- buck电路上下管_推荐 | 学好电路设计与仿真?你不能错过这两本书籍 ~
- NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目
- Python学习笔记(十三)文件操作函数
- Tcpdump源码分析系列4:main函数继续研究
- AWVS 12下载与破解
- matlab画动图心,matlab动态心形图代码
- 单片机音频信号分析仪
- con 元器件符号_multisim元器件符号速查
- 列表 元组 字典的概念及其案例
- vue 选项卡切换
- 统一网关Geteway
- 一文看懂 LSTM(Long Short-Term Memory)
- python 官网下载地址
- 谈谈近期为什么没有写博客的动力