持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天
一、 从本地相册选择图片或使用相机拍照
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| count | Number | 否 | 最多可以选择的图片张数,默认9 |
| sizeType | StringArray | 否 | "original"原图,"compressed"压缩图,默认二者都有 |
| sourceType | StringArray | 否 | "album"从相册选图,"camera"使用相机,默认二者都由 |
| success | Function | 是 | 成功则返回图片的本地文件路径列表tempFilePaths |
| fail | Function | 否 | 接口调用失败的回调函数 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动调用 wx.saveFile,在小程序下次启动时才能访问得到。
wx.chooseImage({
count: 1, // 默认9sizeType: ['original', 'compressed'],
// 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: function (res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片var tempFilePaths = res.tempFilePaths
}
})
二、复制文字
要想实现长按复制功能,需要在text标签中设置user-select属性
调用成功后,会弹出 toast 提示"内容已复制",持续 1.5s参数如果不使用系统的toast弹框,可以调用wx.hiddenloading(),setClipboardData自带的toast弹框就不会再显示
wx.setClipboardData({
data: "复制订单号",
success: function () {
wx.hideLoading()
wx.showToast({
title: '复制成功',
})
}
})
三、 获取手机号
由于微信获取手机号安全模式的升级,直接在在微信小程序里面调用微信后台,是获取不到用户手号,获取用户手机号需要后台服务器和微后台交互才能获得。
第一步:
因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发。另外,新版本接口不再需要提前调用wx.login进行登录。
第二步:
把需要和微信后台 进行交互的自己服务器的域名配置到微信后台
第三步:
获取手机号。js中封装一个事件,判断用户是否授权,未授权需要给提示授权,要获取用户的手机号,微信官方有提供 APIgetPhoneNumber,
//获取手机号
getPhone(e){
如果用户点击了拒绝授权,我们就,结束给了提示
if(e.detail.errMsg== "getPhoneNumber:fail user deny"){
wx.showToast({
title: '你没有给相关授权',
icon:'none'
})
}
已经授权的话进行加密和传参获取真正的数据。获取到的信息是加密的需要使用 encryptedData 解密后为以下 json 结构:
{
"phoneNumber": "18778545120",
"purePhoneNumber": "18778545120",
"countryCode": "86",
"watermark":
{
"appid":"APPID",
"timestamp":TIMESTAMP
}
}
| 参数 | 类型 | 说明 |
|---|---|---|
| phoneNumber | String | 用户绑定的手机号(国外手机号会有区号) |
| purePhoneNumber | String | 没有区号的手机号 |
| countryCode | String | 区号 |
注意: 出现无法获取,显示当前手机号未绑定的问题
一、你的手机号 跟你的微信不是一个,未绑定,你要解绑,绑定你现在用的手机号
二、手机号和微信号是一个,但是你没有绑定
烟火向星辰,所愿皆成真!