微信调用jssdk(分享、拍照)
2018-07-10 本文已影响0人
屎香味十足
需求场景:
超级合伙人,生活圈h5中都会需要从本地相机或者拍照图片上传用来更换头像,或者实名认证;或者需要把当前页面分享出去,让更多的人可以点击查看我们分享的内容,这个时候就需要使用到微信的jsSDK来完成一些列的操作;
具体需求点:
解决方案:
微信h5拍照或者h5分享
1、引入微信JS文件 2、通过config接口注入权限验证配置 3、通过ready接口处理成功验证 4、通过error接口处理失败验证
- 具体实现代码 ####微信h5拍照或者h5分享
<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js" async></script>
// 所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表
});
wx.ready(function(){
// 分享到朋友圈
wx.onMenuShareTimeline({
title: '', // 分享标题
link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: 'that.dataList.share_imgurl', // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
Toast({
message: '分享朋友圈成功',
duration:1000
});
},
cancel: function () {
// 用户取消分享后执行的回调函数
Toast({
message: '分享朋友圈失败',
duration:1000
});
}
});
// 分享给微信好友
wx.onMenuShareAppMessage({
title:'', // 分享标题
desc: '', // 分享描述
link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: 'that.dataList.share_imgurl', // 分享图标
type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
// 用户确认分享后执行的回调函数
Toast({
message: '分享成功',
duration:1000
});
},
cancel: function () {
// 用户取消分享后执行的回调函数
Toast({
message: '分享失败',
duration:1000
});
}
});
// 分享到QQ
wx.onMenuShareQQ({
title: '', // 分享标题
desc: '', // 分享描述
link: '', // 分享链接
imgUrl: '', // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
//h5拍照
wx.chooseImage({
count: 1, // 默认9
sizeType: ['compressed','compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['camera'], // 可以指定来源是相册还是相机'album',默认二者都有
success: function (res) {
var localIds = res.localIds[0].toString(); // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
setTimeout(()=>{
//上传图片
wx.uploadImage({
localId: localIds, // 需要上传的图片的本地ID
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (res) {
var serverId = res.serverId; // 返回图片的服务器端ID
},100);
}
})
}
wx.error(function (res) {
that.setWxOptions('hideOptionMenu');
// alert('」」」」」'+res.errMsg); //打印错误消息。及把 debug:false,设置为debug:ture就可以直接在网页上看到弹出的错误提示
});