t***@sina.com
t***@sina.com
  • 发布:2018-11-14 16:00
  • 更新:2020-01-17 16:38
  • 阅读:2648

为什么在IOS中使用resolveLocalFileSystemURL方法返回不允许读

分类:5+ SDK

IOS中使用resolveLocalFileSystemURL传入路径,路径为file:///var/mobile/Containers/Data/Application/86727B28-75C0-4FC6-B7A3-7FD634B5B8B0/Library/Pandora/documents/20181112114443.stl,返回不允许读,但是这个路径在原生中和使用html5+中证明是正确的路径,而同样的方法在Android中是没有问题的,这样要如何解决

2018-11-14 16:00 负责人:无 分享
已邀请:
DCloud_IOS_XTY

DCloud_IOS_XTY

目前io接口只允许访问
PRIVATE_WWW: 应用运行资源目录常量
PRIVATE_DOC: 应用私有文档目录常量
PUBLIC_DOCUMENTS: 程序公用文档目录常量
PUBLIC_DOWNLOADS: 程序公用下载目录常量
WWW接口为只读目录,你的路径必须确保在上边四个路径中才可以

  • t***@sina.com (作者)

    好的,谢谢,但是IOS中,我使用readAsText可以读出文件内容,但是改为readAsDataURL却返回错误编号5,错误内容是编码错误,这是什么原因呢,使用readAsArrayBuffer是根本没有触发事件

    2018-11-14 17:11

  • DCloud_IOS_XTY

    readAsArrayBuffer没有这个方法吧,readAsDataURL的问题可以提供下问题demo

    2018-11-14 17:32

  • t***@sina.com (作者)

    回复 DCloud_IOS_XTY:我log的时候看到里面有3个readAsArrayBuffer(),readAsText(),readAsDataURL(),这两个方法中只有后两个触发了事件。

    下面是demo

    plus.io.requestFileSystem(

    plus.io.PUBLIC_DOCUMENTS, (fs) => {

    console.log(fs)

    var directoryReader = fs.root.createReader()

    directoryReader.readEntries((entries) => {

    var i

    for (i = 0; i < entries.length; i++) {

    console.log(entries[i].name)

    }

    }, (e) => {

    alert('Read entries failed: ' + e.message)

    })

    fs.root.getFile('20181112114443.stl', {create: false}, (fileEntry) => {

    fileEntry.file((file) => {

    var fileReader = new plus.io.FileReader()

    console.log(file)

    // fileReader.readAsText(file, 'utf-8') 这个可以读取出里面的文本内容

    fileReader.onerror = (evt) => {

    console.log(evt)

    // console.log('evt' + evt.target.result)

    }

    fileReader.onloadend = (evt) => {

    console.log(evt)

    console.log('evt' + evt.target.result)

    // _this.modelBlob = _this.dataUrlToBlob(evt.target.result)

    // _this.blobToArrayBuffer(_this.modelBlob)

    }

    fileReader.readAsDataURL(file) //但是这个会报编码错误

    // fileReader.readAsArrayBuffer(file)

    console.log(file.size + '--' + file.name)

    })

    },

    (error) => {

    console.log('error' + error)

    Indicator.close()

    })

    }

    )


    错误的log是

    error:OBject

    code:5

    message:“编码错误”

    这个问题怎么弄啊

    2018-11-15 10:57

  • DCloud_IOS_XTY

    经测试这个代码运行正常没有报错

    2018-11-15 18:24

  • t***@sina.com (作者)

    回复 DCloud_IOS_XTY:你那个是在IOs的plus.io.PUBLIC_DOCUMENTS这个文件夹中可以使用readAsDataURL()这个方法读取文件不出现问题吗

    2018-11-16 11:07

  • DCloud_IOS_XTY

    就是你上边的代码,只不过stl文件替换成了二进制文件

    2018-11-16 12:54

  • t***@sina.com (作者)

    回复 DCloud_IOS_XTY:是在ios平台上吗,我安卓没问题,但是在ios报错了

    2018-11-16 14:28

  • t***@sina.com (作者)

    造成编码错误的原因有哪些

    2018-11-16 16:21

  • DCloud_IOS_XTY

    建议提供完整的ipa,并说明重现步骤

    2018-11-16 17:49

  • DCloud_IOS_XTY

    建议提供完整的ipa,并说明重现步骤

    2018-11-16 17:49

鹏少

鹏少

为什么在IOS中使用resolveLocalFileSystemURL方法返回不允许读,这个问题解决了吗

该问题目前已经被锁定, 无法添加新回复