H5内嵌企业微信操作

引入微信的jdk

  • 1.为支持微工作台(原企业号)功能,请引用此文件。原企业微信的js文件在微工作台不生效。
<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
  • 2.所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA(single-page application)的web app可在每次url变化时进行调用)。调用方式如下
  •  this.post("/auth/xxx/xxx",{
     url:location.href.split("#")[0],//只要#前面的
     }).then(res=>{
      window.wx.config({
      beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
      debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
      appId:res.appid, // 必填,企业微信的corpID
      timestamp:res.timestamp, // 必填,生成签名的时间戳
      nonceStr:res.nonceStr, // 必填,生成签名的随机串
      signature:res.signature,// 必填,签名,见 附录-JS-SDK使用权限签名算法
      jsApiList: [] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
         });
      })
    
2.文件预览 (但是有的时候这个方法文件会预览不了下载不了,所以用window.location.htef = 'http://xxxx’也可实现相同效果)
wx.previewFile({
    url: '', // 需要预览文件的地址(必填,可以使用相对路径)
    name: '', // 需要预览文件的文件名,必须有带文件格式的后缀,例如.doc(不填的话取url的最后部分,最后部分是个包含格式后缀的文件名)
    size: 1048576 // 需要预览文件的字节大小(必填,而且大小必须正确,否则会打开失败)
});
3. 企业微信默认进去带有水印 window.wx.invoke(“hideWatermark”,{},function(res){//关闭页面水印})
4.文件图片上传(base64 转码提出file)
// An highlighted block
wx.chooseImage({
    count: 1, // 默认9
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
    defaultCameraMode: "batch", //表示进入拍照界面的默认模式,目前有normal与batch两种选择,normal表示普通单拍模式,batch表示连拍模式,不传该参数则为normal模式。从3.0.26版本开始支持front和batch_front两种值,其中front表示默认为前置摄像头单拍模式,batch_front表示默认为前置摄像头连拍模式。(注:用户进入拍照界面仍然可自由切换两种模式)
    isSaveToAlbum: 1, //整型值,0表示拍照时不保存到系统相册,1表示自动保存,默认值是1
    success: function (res) {
        var localIds = res.localIds; // 返回选定照片的本地ID列表,
                // andriod中localId可以作为img标签的src属性显示图片;
                // iOS应当使用 getLocalImgData 获取图片base64数据,从而用于img标签的显示(在img标签内使用 wx.chooseImage 的 localid 显示可能会不成功)
        localIds.forEach((item=>{
				wx.getLocalImgData({
				    localId: '', // 图片的localID
				    success: function (res) {
				        var localData = res.localData; // localData是图片的base64数据,可以用img标签显示
				        //有的上传需要文件file信息需要在base64里提取出来
				 this.base64ToFile(localData,'名字')//file信息
				  }
				});

           }))
    }
});
base64ToFile(urlData,name){
      let arr = urlData.splite(",");
      let mine = arr[0].match(/:(.*?);/)[1];
      let bytes = atob(arr[1]);//解码base64;
      let ia = new Uint8Array(n);
      while(n--){
        ia[n] = bytes.charCodeAt(n);
       }
       return new File([ia],name,{type:mine});
 }
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值