微信小程序踩坑记
程序员文章站
2022-05-14 15:54:46
...
1.使用JSON.parse()的时候失败
解决方案:将序列化后的字符串复制出来以后发现在最后的末尾多了一些别的符号利用字符串的截取掉即可
2.小程序中保存照片到手机相册(代码示例)
// pages/question/question.js
const app = getApp()
const {
globalData
} = app;
Page({
/**
* 页面的初始数据
*/
data: {
OrderUserInfo: {
}
},
authConfirm() {
let that = this
wx.showModal({
content: '检测到您没打开保存图片权限,是否去设置打开?',
confirmText: "确认",
cancelText: "取消",
success: function (res) {
if (res.confirm) {
wx.openSetting({
success(res) {
if (res.authSetting['scope.writePhotosAlbum']) {
that.saveImg();
} else {
wx.showToast({
title: '您没有授权,无法保存到相册',
icon: 'none'
})
}
}
})
} else {
wx.showToast({
title: '您没有授权,无法保存到相册',
icon: 'none'
})
}
}
});
},
//这是在获取授权信息
saveImgPhotos: function () {
let that = this;
wx.getSetting({
success(res) {
console.log(res)
if (res.authSetting['scope.writePhotosAlbum']) {
that.saveImg();
} else if (res.authSetting['scope.writePhotosAlbum'] === undefined) {
wx.authorize({
scope: 'scope.writePhotosAlbum',
success() {
that.saveImg();
},
fail() {
that.authConfirm()
}
})
} else {
that.authConfirm()
}
}
})
},
//这是把图片保存在自己的项目内部利用获取相对的路径来保存的但是注意在这里基本上都是使用btn和分享的
saveImg: function () {
wx.getImageInfo({
src: '../../assets/img/sharePhots.png',
success: function (res) {
wx.saveImageToPhotosAlbum({
filePath: res.path,
success: function () {
wx.showToast({
title: '保存成功',
})
},
fail: function () {
wx.showToast({
title: '保存失败',
icon: 'success',
duration: 2000
})
}
})
}
})
//注意第二种是先下载下来以后在利用他的临时路径来处理的数据
// wx.downloadFile({
// url: 'http://upload.jianshu.io/admin_banners/web_images/4435/c1d3ca63353c8bd527f0d781605516cb5b266d02.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/1250/h/540',
// success: function (res) {
// let img = res.tempFilePath;
// wx.saveImageToPhotosAlbum({
// filePath: img,
// success: function () {
// wx.showToast({
// title: '保存成功',
// icon: 'success',
// duration: 2000
// })
// },
// fail: function () {
// wx.showToast({
// title: '保存失败',
// icon: 'success',
// duration: 2000
// })
// }
// }
// )
// }
// })
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.util = {
...globalData
};
let UserInfo = wx.getStorageSync('AnswerUserInfo');
if (UserInfo.length > 0) {
let User = JSON.parse(UserInfo.substring(0, UserInfo.lastIndexOf('}') + 1))
this.util.http(`/quicksilver/api/v1/flowerlamp/class/getClassUser?userId=${User.UserId}`, 'get').then((res) => {
this.setData({
OrderUserInfo: res.data
})
})
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
上一篇: 移动端适配