微信流量主挑战:用户数量累计38!uniapp小程序下载多张图片(新纪元6)

137 阅读3分钟

昨天,30个人,走进了我们的小程序。我感动得眼泪差点糊了屏幕,这种感觉就像种地的农民伯伯看着庄稼疯长一样满足!

63.png 但是,万万没想到啊,今天居然涨到了 38个人!没错,整整比昨天多了8个!我这数学虽然不咋地,但这增长率可是妥妥的 26.666...6%!(小数点后还有很多6,证明我们增长有多牛~),8个新增用户,别笑,这对我来说就是天大的“流量暴增”!可以说,这38个人就是我编程生涯的里程碑,他们是闪耀的8颗小星星,为我这漆黑的开发深夜点亮了方向!

62.png 今天咱们来聊聊 个人开发者的史诗级奋斗日常。没错,就是我,前端、后端、运维、产品、客服、扫地阿姨……全都我一个牛马扛。

62.png 昨天我的小程序用户数是 30人。说实话,虽然不多,但看到这30个小圆头像,我心里那个骄傲自豪啊,忍不住冲着天花板比了个心❤️——终于不再是我一个人对着测试数据“自嗨”了!

今天是搞定了文档上传、解析、转换的全套逻辑(用脚本跑的,真别问过程,泪水逆流成河)。功能可以实现PDF转图片。DOCX转PDF,XLSX转PDF,现在功能已经递交审核,等小程序审核大哥盖个章!

6.png 开发一个小程序,真的不是一蹴而就的事。尤其是对于我这种全凭兴趣驱动、没有大厂背景的个人开发者来说,每个用户的点赞、每个建议的反馈,甚至哪怕只是点开了我的小程序,都让我觉得这一切值得!

明天,我的小程序将带着文档转换功能跟大家见面, 还请大家多多支持! 毕竟,你们每点一次,我都能多加一勺鸡腿饭!坚持到最后,我相信,一定会有更多的38个人为我喝彩。感谢大家,你们的每一次使用,都是对我这个小开发者最大的肯定!

先来说说uniapp小程序如何一次性下载多张图片,使用Promise.all

downloadMultipleImages() {
				uni.showLoading({
				  title: '保存中',
				  mask: true
				});
				this.showDownloadProgress = true

					
				// 存储所有的下载任务
				const downloadPromises = this.imgsList.map(item => {
					let downloadUrl = App.baseURL + '/api/display/' + item;
					return this.downloadImage(downloadUrl, () => {});
				});

				// 使用 Promise.all 来并行处理所有的下载任务
				Promise.all(downloadPromises)
					.then(() => {
						uni.hideLoading();
						uni.showToast({
							title: '所有图片保存成功',
							icon: 'success'
						});
					})
					.catch((error) => {
						uni.hideLoading();
						uni.showToast({
							title: '图片保存失败',
							icon: 'error'
						});
					});
			},

与下载单张图片结合

downloadImage(url, onProgress) {
				return new Promise((resolve, reject) => {
					// 下载图片
					uni.downloadFile({
						url,
						success: (res) => {
							if (res.statusCode === 200) {
								// 鉴权
								uni.authorize({
									scope: 'scope.writePhotosAlbum',
									success: () => {
										// 保存图片到相册
										uni.saveImageToPhotosAlbum({
											filePath: res.tempFilePath,
											success: () => {
												resolve('保存成功');
												// uni.showToast({
												// 	title: '保存成功'
												// });
												this.completedImg += 1; // 已下载的图片数量
											},
											fail: (err) => {
												if (err.errMsg.includes(
														'fail cancel')) {
													// 取消不为错,h5端可能有这个问题
													uni.hideLoading();
													return;
												}
												reject('保存失败');
												// uni.showToast({
												// 	title: '保存失败',
												// 	icon: 'error'
												// });
											}
										});
									},
									fail: () => {
										// 鉴权失败手动打开
										uni.hideLoading();
										uni.showModal({
											title: '提示',
											content: '需要保存图片权限,请在设置中打开',
											showCancel: false,
											success: uni.openSetting
										});
										reject('鉴权失败');
									}
								});
							} else {
								reject('图片解析失败');
								uni.showToast({
									title: '图片解析失败',
									icon: 'error'
								});
							}
						},
						fail: (err) => {
							// 下载失败
							reject('图片解析失败');
							uni.showToast({
								title: '图片解析失败',
								icon: 'error'
							});
						}
					});
				});
			}

行了,先到这吧,我还要去优化明天的上线版本,咱们晚上见,记得来体验啊!有兴趣的小伙伴可以微信搜索体验下!公众号同名,分享更多资源和心路历程

e97fe99ce38246ab13699bce1c35b88.jpg