plus.io 文件的存儲路徑


plus.io 文件的存儲路徑

前言

最近做用react、h5+技術的APP項目,使用到了plus.io的API去獲取文件,並修改文件內容。
現對文件的存儲路徑做個筆記。

沙盒原則與根目錄模式

1.沙盒原則

符規范 但不好找 文件存儲在app的文件夾內。應用卸載時,文件也會被刪除。很危險。
文件的地址: /storage/Android/data/io.dcloud.HBuilder(APP包名)/documents/config.txt
用法: 'config.txt'

2.根目錄模式

好找 但android11以上可能不支持 文件直接存放於手機目錄的根目錄下 應用卸載后也不會影響文件
文件的地址 : /storage/config.txt
用法: '/storage/emulated/0/config.txt'

舉例

function getData(path) {
  return new Promise(resolve => {//文件讀寫是一個異步請求 用promise包起來方便使用時的async+await
    plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, fs => {//請求文件系統
      fs.root.getFile(path, {//請求地址文件  '/storage/emulated/0/config.txt'為根目錄  '/config.txt'為/storage/Android/data/io.dcloud.HBuilder(包名)/documents/config.js
        create: true//當文件不存在時創建
      }, fileEntry => {
        fileEntry.file(function (file) {
          let fileReader = new plus.io.FileReader()//new一個可以用來讀取文件的對象fileReader
          fileReader.readAsText(file, 'utf-8')//讀文件的格式
          fileReader.onerror = e => {//讀文件失敗
            console.log('獲取文件失敗', fileReader.error)
            plus.nativeUI.toast("獲取文件失敗,請重啟應用", {
              background: '#ffa38c',
            })
            return
          }
          fileReader.onload = e => {//讀文件成功
            let txtData = e.target.result
            resolve(txtData)////回調函數內的值想返回到函數外部  就用promise+resolve來返回出去
          }
        })
      }, error => {
        console.log('2新建獲取文件失敗', error)
        plus.nativeUI.toast("獲取文件失敗,請重啟應用", {
          background: '#ffa38c',
        })
        return
      })
    },
      e => {
        console.log('1請求文件系統失敗', e.message)
        plus.nativeUI.toast("請求系統失敗,請重啟應用", {
          background: '#ffa38c',
        })
        return
      }
    )
  }
  )
}

export default getData


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM