国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

實(shí)際記錄uni-app使用uni-download和uni.saveFile下載保存文件遇到的問(wèn)題以及解決方法

這篇具有很好參考價(jià)值的文章主要介紹了實(shí)際記錄uni-app使用uni-download和uni.saveFile下載保存文件遇到的問(wèn)題以及解決方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

項(xiàng)目場(chǎng)景:

app里的開(kāi)發(fā)的小程序需要下載文件功能以及一個(gè)下載中心頁(yè)面可以查看所有下載的文件,使用了uni.download下載以及uni.saveFile保存文件
下載中心頁(yè)面實(shí)現(xiàn)邏輯
1.下載文件后保存文件名和uni.saveFile返回的路徑uni.setStorageSync到緩存里

uni.downloadFile({
					    method: 'GET',
					    url: 你的url,
					    timeout: 5000,
					   header:{
					     authorization: 你的token,
					   },
					    success: (data) => {
							//接口返回的文件流
							console.log("fileData",data)
					            if (data.statusCode === 200) {
					                    //文件保存到本地
					                    uni.saveFile({
					                            tempFilePath: data.tempFilePath, //臨時(shí)路徑
					                            success: function(res) {
					                                console.log("data.",res)
														let list = uni.getStorageSync("__local_down_history");
														if (list.length) {
															let arrNew=list
															let newObj={
																path:res.savedFilePath,
																name:fundcode+"_"+fundNo+'.'+fileType
															}
															arrNew.unshift(newObj);
															_this.localSearchList=arrNew
															// arrUnique(this.localSearchList);
														} else {
															_this.localSearchList = [{
																path:res.savedFilePath,
																name:fundcode+"_"+fundNo+'.'+fileType
															}];
														}
														console.log("文件緩存",_this.localSearchList)
														uni.setStorageSync("__local_down_history", _this.localSearchList);        
					                            }
					                    });
										
					            }
					    },
					    fail: (err) => {
					            console.log(err);
					            // uni.showToast({
					            //         icon: 'none',
					            //         mask: true,
					            //         title: '失敗請(qǐng)重新下載',
					            // });
					    },
					})

2.下載中心讀取uni.getStorageSync緩存的文件列表

<ourLoading isFullScreen :active='loadingStatus' text="加載中..." color='rgb(0, 106, 254)' textColor='rgb(0, 106, 254)'	 />
<uni-list class="uni-list" :border="false" style="margin-bottom: 50px;">
				<!-- 列表渲染 -->
				<uni-list-item v-for="(item,index) in currnetArr" :key="index" >
					<template v-slot:body>
						<view class="main">
							<view class="mainContent"  >
							//節(jié)流打開(kāi)文件
									<text class="author" style="color: #89939B;" @tap="$u.throttle(openURL(item.path), 1000)">{{item.name}}</text>
							</view>
								
						</view>
					</template>
				</uni-list-item>
			</uni-list>
data() {
			return {
				currnetArr:uni.getStorageSync(你保存的緩存key值),
				loadingStatus:false,
			}
openURL(path){
				console.log('path',path)
				const _this = this
				if(!this.loadingStatus) {
					this.loadingStatus = true
					setTimeout(() => {
						uni.openDocument({
								filePath: path,
								success: function(res) {
										_this.loadingStatus = false
										console.log('打開(kāi)文檔成功');
								},
								fail: function(e){
									_this.loadingStatus = false
									uni.showToast({
										icon: 'none',
										mask: true,
										title: '文件打開(kāi)失敗',
									});
								}
						});
					}, 1000)
				}
				
				
			},

問(wèn)題描述

通過(guò)這種uni.downloadFile配合uni.saveFile下載并保存文件,然后在下載中心點(diǎn)擊打開(kāi)文件,邏輯是沒(méi)問(wèn)題的。但是這個(gè)方式蘋果手機(jī)可以正常打開(kāi)文件,安卓一直打開(kāi)文件報(bào)錯(cuò)。


原因分析:

分析是download方法的問(wèn)題,保存文件一般是內(nèi)部復(fù)制,系統(tǒng)差異應(yīng)該是保存路徑的問(wèn)題, 即uni.saveFile返回的savedFilePath保存的臨時(shí)文件路徑問(wèn)題


解決方案:

配合H5+的下載方法,強(qiáng)行指定下載路徑,這樣就不會(huì)有臨時(shí)路徑的差異了,從而解決安卓系統(tǒng)打不開(kāi)文件問(wèn)題,下面是下載文件最終版本代碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-526045.html

uni.downloadFile({
					     method: 'GET',
					     url: 你的url,
					     timeout: 2000,
					    header:{
					      authorization:你的 token,
					    },
					     success: (data) => {
					             if (data.statusCode === 200) {
									 plus.io.resolveLocalFileSystemURL( data.tempFilePath, function( entry ) {
										 const name = `${entry.name}.pdf` //這里設(shè)置文件名根據(jù)自己的下載文件后綴來(lái)修改,我這邊需求是pdf
										 entry.getParent(function(scb) {
											 entry.moveTo(scb,name, function(sEntry) {
												 //文件保存到本地
												uni.saveFile({
														tempFilePath: sEntry.fullPath, //臨時(shí)路徑
														success: function(res) {
																// 判斷手機(jī)平臺(tái)是 Android 還是 IOS
																if (uni.getSystemInfoSync().platform === 'android') {
																		uni.showModal({
																				title:"保存地址為:",
																				content: res.savedFilePath,
																				duration: 3000,
																		})
																} else {
																		uni.showModal({
																				icon: 'none',
																				title: '文件已保存:',
																				content: res.savedFilePath,
																				duration: 3000,
																		});
																}
																
																let list = uni.getStorageSync("__local_down_history");
																if (list.length) {
																	let arrNew=list
																	let newObj={
																		path:res.savedFilePath,
																		name:"收據(jù)."+ReceiptNo+'.pdf' 
																		//這里的保存的name是下載中心展示的文件名,不是這個(gè)文件原本的名字
																	}
																	arrNew.unshift(newObj);
																	_this.localSearchList=arrNew
																	// arrUnique(this.localSearchList);
																} else {
																	_this.localSearchList = [{
																		path:res.savedFilePath,
																		name:"收據(jù)."+ReceiptNo+'.pdf'
																	}];
																}
																console.log("文件緩存",_this.localSearchList)
																uni.setStorageSync("__local_down_history", _this.localSearchList);        
														}
												});
											 } )
										 })
									 })
					                     
					             }
					     },
					     fail: (err) => {
					             console.log(err);
					             uni.showToast({
					                     icon: 'none',
					                     mask: true,
					                     title: '失敗請(qǐng)重新下載',
					             });
					     },
					 })

到了這里,關(guān)于實(shí)際記錄uni-app使用uni-download和uni.saveFile下載保存文件遇到的問(wèn)題以及解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uni-app黑馬優(yōu)購(gòu)項(xiàng)目學(xué)習(xí)記錄(上)

    uni-app黑馬優(yōu)購(gòu)項(xiàng)目學(xué)習(xí)記錄(上)

    ??? NodeJS專欄:Node.js從入門到精通 ??? 藍(lán)橋杯真題解析:藍(lán)橋杯Web國(guó)賽真題解析 ?? 加入社區(qū)領(lǐng)紅包:海底燒烤店ai(從前端到全棧) ?????個(gè)人簡(jiǎn)介:即將大三的學(xué)生,一個(gè)不甘平庸的平凡人?? ?? 你的一鍵三連是我更新的最大動(dòng)力??! ??分享博主自用 ??途W(wǎng)

    2024年02月10日
    瀏覽(25)
  • 記錄--『uni-app、小程序』藍(lán)牙連接、讀寫數(shù)據(jù)全過(guò)程

    記錄--『uni-app、小程序』藍(lán)牙連接、讀寫數(shù)據(jù)全過(guò)程

    這里給大家分享我在網(wǎng)上總結(jié)出來(lái)的一些知識(shí),希望對(duì)大家有所幫助 這是一次真實(shí)的 藍(lán)牙收發(fā)數(shù)據(jù) 的全過(guò)程講解。 本文使用 uni-app + Vue3 的方式進(jìn)行開(kāi)發(fā),以手機(jī)app的方式運(yùn)行(微信小程序同樣可行)。 uni-app 提供了 藍(lán)牙 和 低功耗藍(lán)牙 的 api ,和微信小程序提供的 api 是一樣

    2024年01月21日
    瀏覽(28)
  • [uni-app]微信小程序隱私保護(hù)指引設(shè)置的處理記錄

    [uni-app]微信小程序隱私保護(hù)指引設(shè)置的處理記錄

    關(guān)于小程序隱私保護(hù)指引設(shè)置的公告 一切的起因就是上面這則公告. 2023年9月15日后 自2023年9月15日起,對(duì)于涉及處理用戶個(gè)人信息的小程序開(kāi)發(fā)者,微信要求,僅當(dāng)開(kāi)發(fā)者主動(dòng)向平臺(tái)同步用戶已閱讀并同意了小程序的隱私保護(hù)指引等信息處理規(guī)則后,方可調(diào)用微信提供的隱私

    2024年02月09日
    瀏覽(34)
  • 小程序-uni-app:hbuildx uni-app 安裝 uni-icons 及使用

    小程序-uni-app:hbuildx uni-app 安裝 uni-icons 及使用

    一、官方文檔找到uni-icons uni-app官網(wǎng) 二、下載插件 三、點(diǎn)擊“打開(kāi)HBuildX” 四、選擇要安裝的項(xiàng)目 五、勾選要安裝的插件 六、安裝后,項(xiàng)目插件目錄 根目錄uni_modules目錄下增加uni-icons、uni-scss 七、引入組件,使用組件 八、經(jīng)過(guò)測(cè)試,成功。 參考鏈接 http://lihuaxi.xjx100.cn/new

    2024年02月12日
    瀏覽(101)
  • 記錄uni-app + vue3 + vite + uni-ui 小程序出現(xiàn) Invalid pattern 的報(bào)錯(cuò)處理

    記錄uni-app + vue3 + vite + uni-ui 小程序出現(xiàn) Invalid pattern 的報(bào)錯(cuò)處理

    登錄 - Gitee.com uni-ui 現(xiàn)在只推薦使用 easycom ,如自己引用組件,可能會(huì)出現(xiàn)組件找不到的問(wèn)題 uni-ui 不支持使用 Vue.use() 的方式安裝 在? vue-cli ?項(xiàng)目中可以使用? npm ?安裝? uni-ui ?庫(kù)? 注意 ?cli 項(xiàng)目默認(rèn)是不編譯? node_modules ?下的組件的,導(dǎo)致條件編譯等功能失效 ,導(dǎo)致組件

    2024年02月19日
    瀏覽(19)
  • 【uni-app】uni-app中scroll-into-view的使用

    【uni-app】uni-app中scroll-into-view的使用

    在使用的時(shí)候需要注意: 需要給sroll-view組件設(shè)置寬或者高(根據(jù)橫縱情況) white-space:nowrap 這行代碼讓組件能夠滑動(dòng)(之前自己寫的時(shí)候踩的坑) 使用 scroll-into-view ,需要開(kāi)啟動(dòng)畫(huà)效果,并且動(dòng)態(tài)綁定的值必須是字符串 并且子組件的上綁定一個(gè)id值用于定位 以上就是今天要講的內(nèi)容,

    2024年02月11日
    瀏覽(17)
  • Uni-app組件使用

    組件是 視圖層的基本組成單元 。是一個(gè)單獨(dú)且 可復(fù)用的功能模塊的封裝 。 組件名稱是由尖括號(hào)包裹的,可以看成一個(gè)語(yǔ)義化標(biāo)簽,是有開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽的。 如下舉個(gè)簡(jiǎn)單的例子: uni-card ?//這是開(kāi)始標(biāo)簽 text 這是一個(gè)基礎(chǔ)卡片示例,內(nèi)容較少,此示例展示了一個(gè)沒(méi)有任

    2024年02月09日
    瀏覽(16)
  • uni-app使用websocket

    原文鏈接:https://blog.csdn.net/weixin_43343144/article/details/92998467

    2024年02月07日
    瀏覽(18)
  • uni-app如何使用組件

    使用組件是uni-app的常見(jiàn)操作之一。以下是使用組件的步驟: 在uni-app項(xiàng)目中創(chuàng)建組件。 可以通過(guò)在components文件夾中創(chuàng)建一個(gè).vue文件來(lái)創(chuàng)建組件。 也可以通過(guò)在HBuilderX中使用模板或向?qū)?lái)創(chuàng)建組件。 在需要使用組件的頁(yè)面或組件中引入組件。 可以使用import導(dǎo)入組件,例如:

    2024年02月13日
    瀏覽(19)
  • uni-app--》如何制作一個(gè)APP并使用?

    uni-app--》如何制作一個(gè)APP并使用?

    ???作者簡(jiǎn)介:大家好,我是亦世凡華、渴望知識(shí)儲(chǔ)備自己的一名在校大學(xué)生 ??個(gè)人主頁(yè):亦世凡華、 ??系列專欄:uni-app ??座右銘:人生亦可燃燒,亦可腐敗,我愿燃燒,耗盡所有光芒。 ??引言 ?????????經(jīng)過(guò)web前端的學(xué)習(xí),相信大家對(duì)于前端開(kāi)發(fā)有了一定深入的

    2023年04月09日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包