E企盈营销工具技术服务商 热线:4006-838-530

微信小程序之简单的用户授权系列操作

E企盈直播平台营销卖货系统

一、获取用户登录状态 和 获取用户信息想获取用户信息,需要点击btn按钮,给button设置属性open-type=”getUserInfo” 和bindgetuserinfo=”MygetUserInfo”<button open-type=”getUserInfo” bindgetuserinfo=”MygetUserInfo”>获取用户信息</button>获取用户信息之前先获取登录状态wx.login,不过登录了微信的话一般登录状态都是对的,但也有时限,这个看文档吧。登陆成功后调用wx.getUserInfo会弹出授权框,成功后就会返回一个存着用户头像名称等的信息,还有个加密信息,加解密还没看,看了补充 MygetUserInfo: function(){    var _this = this;    wx.login({      success: function(res){        /* 获取用户信息的弹框 */        wx.getUserInfo({          /*withCredentials默认值为true,可不填,当设为false时就获取不到用户的加密信息*/          withCredentials: true,          success: function(res){            console.log(res);            var user = res.userInfo            _this.setData({              userInfo: user,              hasUserInfo: true            })          },          fail:function(res){            console.log(res)          }       })     }  })} 二、打开授权设置页面方式1.wx.openSetting,给按钮添加一个点击事件,事件中直接调用api,但文档中说即将废弃,改用方法2wx.openSetting({   success: res => { console.log(res) }})方式2.给button按钮设置属性open-type=”openSetting” 和 bindopensetting=”MyopenSetting”,点击按钮也会弹出授权设置页面<button open-type=”openSetting” bindopensetting=”MyopenSetting”>查看用户设置界面并修改</button>MyopenSeting自定义事件里返回的事件对象res.detail.authSetting保存着授权状态,这个事件在设置页面关闭时触发MyopenSetting: function(res){    console.log(res.detail.authSetting)},三、返回授权状态  wx.getsetting在上面授权设置页面关闭时也会返回授权状态,但还包括其他信息,要一层一层找,这个wx.getsetting直接返回所有触发过授权弹窗的所有授权状态四、主动调出授权框  wx.authorize()原话是 “开发者可以使用 wx.authorize 在调用需授权 API 之前,提前向用户发起授权请求。”参数是一个对象,其中scope属性设置是什么权限。scope.record就是录音授权,其他的看文档吧wx.authorize({   scope: ‘scope.record’,   success: res=>{      console.log(res)   }})五、录音授权 和 录音使用这个就是定义了 录音授权、开始录音、暂停录音、继续录音、停止录音四个按钮,然后绑定bindtap自定义事件要使用录音需要先获取全局唯一的录音器。我是在onload中定义了一个const recorderManager = wx.getRecorderManager();然后把它setData到了data里,后面用录音器就调用this.data.recorderManager。但看网上是存到全局变量里,难道变量可以不定义在data中吗?还是说wxml需要这样{{}}调用的数据才必须放到data中?后面我再查查看,也希望朋友们谁知道的话说一声,谢啦! 最后要播放录音,需要先用wx.createInnerAudioContext获取全局唯一的播放器。然后在停止录音后,将生成的音频地址,传到播放器.src中,然后play(),onPlay事件处理播放器播放时的信息。这里的播放器我是定义了一个局部变量,一开始想和录音器一样在onload中定义,然后全局使用的时候,发现有错误。(好吧,刚刚又试了一遍,发现只是在开发工具上报错,在手机上使不报错的) 因为我定义播放器后,给出错加了一个打印,InnerAudioContext.onError( res => {console.log(res)}),然后模拟时报错信息是,但其实不管是全局还是局部播放器变量都会抱着个错,只不过我是改成局部时才在真机上实验的,可以用,我就以为局部才可以,现在我又试了下全局,手机上也可以,不报这个错。// 设置录音授权的授权框  MyLYauthorize: function(){    console.log(‘录音授权’)    wx.authorize({      scope: ‘scope.record’,      success: res=>{        console.log(res)      }          })  },//开始录音   startRecord: function(){    this.data.recorderManager.start()    this.data.recorderManager.onStart(() => {      console.log(‘recorder start’)    })  },//暂停录音和继续录音  pauseRecord: function (){    if(this.data.paused){      this.setData({        paused : false,        pauseText: “暂停录音”      })      this.data.recorderManager.resume()    }else{      this.setData({        paused: true,        pauseText: “继续录音”      })      this.data.recorderManager.pause()    }    this.data.recorderManager.onPause(() => {      console.log(‘recorder pause’)    })  },//停止录音,此时会返回一个时间对象,里面存着音频的src、时间一类的信息  stopRecord: function (){    this.data.recorderManager.stop()    this.data.recorderManager.onStop((res) => {      console.log(‘recorder stop’)      console.log(res)      var recordFile = res.tempFilePath;      this.setData({        recordFile: recordFile,      })    })  },//播放录音,需要先用wx.createInnerAudioContext获取全局唯一的播放器。然后在停止录音后,将生成的音频地址,传到播放器.src中,然后play(),onPlay事件处理播放器播放时的信息  playRecord: function(){    var InnerAudioContext = wx.createInnerAudioContext();    console.log(InnerAudioContext)    InnerAudioContext.onError( res => {      console.log(res)    })    InnerAudioContext.src = this.data.recordFile    InnerAudioContext.play();//在安卓手机上可以播放,但暂停不管用    InnerAudioContext.onPlay(() => {      console.log(“播放”);    })  },六、地理位置授权地理位置授权成功之后,我是又调用了打开地图查看位置的api wx.getLocation()。参数里的type有两种:“wga84”  和’gcj02’使用第一种的话就是用wx.chooseLocation打开地图;使用第二种的话就是用wx.openLocation打开微信内置地图。上面那个是什么地图我也不清楚,汗。刚刚在安卓手机上试了下,发现第一种打不开地图,授权之后没反应。第二种可以打开。MyDLauthorize: function(){    console.log(“地理位置授权”)    wx.authorize({      scope: ‘scope.userLocation’,      success: res => {       //打开地图查看位置        wx.getLocation({          type:”wga84″,          success: function(res){            // console.log(res)            wx.chooseLocation({              success: res => {                console.log(res)              }            })          }        })                // 打开微信内置地图wx.openLocation        wx.getLocation({          type: ‘gcj02’, //返回可以用于wx.openLocation的经纬度          success: function (res) {            var latitude = res.latitude            var longitude = res.longitude            wx.openLocation({              latitude: latitude,              longitude: longitude,              scale: 28            })          }        })      }    })  },七、分享功能的开和关定义了一个开启分享功能的btn,一个关闭分享功能的btn,还有一个通过点击按钮分享页面的btn(这个按钮是需要用botton属性open-type的)<button bindtap=”startShare”>允许分享</button><button bindtap=”stopShare”>关闭分享</button><!– button属性plain=”false”会镂空 –><button open-type=”share” type=”primary” data-id=”1″>分享</button>然后定义两个自定义事件,和一个监听事件(onShareAppMessage监听事件用来监听分享的操作。分享方式一个是点击右上角的…,另一种就是用button。监听事件可以判断是不是通过点击按钮分享的,见代码)  // 开启分享  startShare: function(){    wx.showShareMenu({     })  },  // 关闭分享  stopShare: function(){    wx.hideShareMenu({     })  },  // 分享设置  onShareAppMessage: function(res){    if (res.from === ‘button’) {      // 来自页面内转发按钮      console.log(res.target)    }    return {      title: ‘测试分享标题’,      path: ‘/pages/home’,//换成别的地址也不生效,还是当前地址      imageUrl: ‘/images/logo_dog3.jpg’    } } 终于把今天下午的这些东西整理完了。。。洗澡去~

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 微信小程序之简单的用户授权系列操作
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏