最近在做微信公众号网页开发,遇到两个需要用到微信的JSSDK,上传图片和自动定位,微信开发者文档有详细的步奏内容,链接点击进入微信开发者文档 ,也可以看看我这篇文章,看我是如何实现的。

首先第一步,需要在页面引入微信的JS文件(http和https都行)

<script src="/UploadFiles/2021-04-02/jweixin-1.2.0.js">

第二步,获取签名

后台会给前端一个接口,前端通过这个接口发送请求获取必要的签名信息,并进行配置

sendAjax.weixin.getSdkSign({'传入参数'},function(msg){
    let sdkSign = msg.sdkSgin; // 后台返回的值
   wx.config({
    debug: false, // 因为在手机上测试没法打印,当debug为true时,所有的返回值都会在手机上alert出来
    appId: sdkSign.appId, // 必填,公众号唯一标识
    timestamp: sdkSign.timestamp, // 必填,生成签名的时间戳
    nonceStr: sdkSign.nonceStr, // 必填,生成签名的随机串
    signature: sdkSign.signature,// 必填,签名
    jsApiList: ['chooseImage','uploadImage'] // 必填,需要使用的JS接口列表,需要用到什么接口就去开发者文档查看相应的字段名
   });
});

其中,sendAjax.weixin.getSdkSign 是我个人自己封装的ajax请求,不用多在意。

第三步,就是上传图片了,相信一般都是一个点击事件来调取微信的相册和摄像头功能。在事件方法中按以下方式写

wx.chooseImage({
    count: 1, // 最多可以选择的图片张数,默认9
    sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
    sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
    success: function (res) {
     let localIds = res.localIds; // 返回选定照片的本地ID列表(手机上操作就是手机端的ID列表,是一个数组),localId可以作为img标签的src属性显示图片
     wx.uploadImage({
      localId: localIds[0], // 需要上传的图片的本地ID,由chooseImage接口获得
      isShowProgressTips: 1, // 默认为1,显示进度提示
      success: function (result) {
       let serverId = result.serverId; // 返回图片的服务器端ID
         // 可以将serverId传给后台,用于存放在自己服务器上
      }
     });
    },
    fail: function() {},
    complete: function() {}
});

需要注意的是,chooseImage是调取微信相册和摄像头功能。其中count是可选择的,localIds是一个数组,当只上传一张图片时,localIds[0]可直接用来作为需要上传图片位置的路径,不用再拼接其他东西。

uploadImage是将本地图片上传到服务器,至于怎么上传,这应该是后端的事了,你只需要保证localIds这个数组正确即可。

至此,微信端调取相册和摄像头功能,实现图片上传,并上传到服务器功能基本就实现了,有疑问或者不对的地方欢迎留言。

以上所述是小编给大家介绍的微信端调取相册和摄像头功能图片上传服务器详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。