uni-app文件下载,获取已下载列表以及文件预览Android和IOS的处理(非视频图片。)

时间:2025-01-30 13:19:59

uniapp官方api中不支持app。这里查了网上的方法总结了下

这些方法支持各种常见的文件(视频。照片。文档。表格。AND SO ON)

判断当前使用的设备

// 判断设备
			fJudgePlatForm() {
				let platform = ().platform;
				if (platform == 'ios') {
					('我是iOS')
				} else if (platform == 'android') {
					('我是安卓')
				}
			},

Android

Android 运用了HTML5+plus

// 文件下载-自定义下载目录  --  安卓
			fDownLoadFileAndroid() {
				var url = '这是下载的链接'
				let dtask = (url, {
						/**
						 *  本地路径开头使用file://,跟上手机文件本地目录storage/emulated/0,就是用户文件管理器能看到的了,
						 *  后缀是用于文件命名和格式修改
						 *  file://storage/emulated/0/后面就是用户文件管理的第一层,可以创建目录,
						 * */
						filename: "file://storage/emulated/0/在这里可以创建自定义目录/" + "这里放文件名,可以对文件重命名(注:这里要带上文件后缀名).docx" 
					},
					(d, status) => {
						//d为下载的文件对象
						if (status == 200) {
							(d, '下载成功', status);
							//下载成功,是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
							let fileSaveUrl = ();
							// (); //选择软件打开文件
							();
						} else {
							//下载失败
							(); //清除下载任务
						}
					})
				();
			},


            // 获取本地的已下载文件列表
			fGetSavedFileList() {
				 = [];
				(
						"file://storage/emulated/0/这里是你上面自定义的目录/", //指定的目录
						(entry) => {
							var directoryReader = (); //获取读取目录对象
							(
								(entries) => { //返回的是指定文件夹下的文件列表和                                    (OBJECT)效果一样
									// (entries)
									 = entries
								},
								(err) => {
									("访问目录失败");
								});
						},
						(err) => {
							("访问指定目录失败:" + );
						});



			},

	// 安卓打开文档
			fOpenFileAndroid(oFile) {
                //oFile是上面获取本地的已下载文件列表中的对象
				// (oFile)
				(); //打开文件
	        },

IOS

IOS 就使用uniapp官方的api就可以

// 文件下载--IOS
			fDownLoadFileIos() {
				({
					url: '这里是下载的地址',
					success: (res) => {
						if ( === 200) {
							// ('下载成功', res);
							({
								tempFilePath: ,
								success: (res) => {
									// ('保存成功', res);
									var savedFilePath = ;
									();
								}
							});
						}
					}
				});
			},

// 获取本地的已下载文件列表
			fGetSavedFileList() {
                 = [];
                ({
						success: (res) => {
							// (res);
							(,'已下载的文件列表');
							
						}
					});
            }

	// ios打开文档
			fOpenFileIos(oData) {
                //上面的获取本地的已下载文件列表中的对象
				({
					filePath: ,
					showMenu: true,
					success: (res) => {
						(res, '打开文档成功')
					},
					fail: (res) => {
						(res, '打开文档失败')
					}
				});
			},

备注:上面有的是查了网上的资料。我在这里只是吧他们总结了下,方便大家直接使用 (如有侵权请联系我)