Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Cordova iOS应用程序动态生成/保存的文件可供最终用户访问?_Ios_Cordova_Cordova Ios_Cordova Plugin File - Fatal编程技术网

如何使Cordova iOS应用程序动态生成/保存的文件可供最终用户访问?

如何使Cordova iOS应用程序动态生成/保存的文件可供最终用户访问?,ios,cordova,cordova-ios,cordova-plugin-file,Ios,Cordova,Cordova Ios,Cordova Plugin File,我正在使用cordova插件文件将一些数据图像保存到用户的iOS手机上 saveBlobAsImageFile(folderpath, filename, blob) { const onError = function(msg) { // handles error } window.resolveLocalFileSystemURL(folderpath, function(dir) { console.log("Access to the direc

我正在使用
cordova插件文件
将一些数据图像保存到用户的iOS手机上

saveBlobAsImageFile(folderpath, filename, blob) {
  const onError = function(msg) {
    // handles error
  }

  window.resolveLocalFileSystemURL(folderpath, function(dir) {
    console.log("Access to the directory granted");
    dir.getFile(filename, { create: true }, function(file) {
      console.log("File created")
      file.createWriter(function(fileWriter) {
        fileWriter.write(blob);
        console.log("Written file")
      }, onError)
    }, onError)
  }, onError)
}
对于
文件夹路径
,我尝试了以下5个选项:

let folderpath = cordova.file.syncedDataDirectory;
let folderpath1 = cordova.file.documentsDirectory; 
let folderpath2 = cordova.file.dataDirectory;
let folderpath3 = cordova.file.cacheDirectory;
let folderpath4 = cordova.file.tempDirectory;
运行函数
saveBlobAsImageFile
后,日志显示写入成功,但当我转到模拟器/iPhone中的文件或库时,我找不到任何保存的文件

更新:在模拟器中运行时,单击“保存”后,我发现文件保存在以下文件夹中:

file:///Users/ngoctuan001/Library/Developer/CoreSimulator/Devices/2964FE69-A5FE-4516-B8F1-C45488DBE2B5/data/Containers/Data/Application/1EF9FF0C-903E-481F-87A0-9A1CEDA4DE5D/Library/Cloud/
file:///Users/ngoctuan001/Library/Developer/CoreSimulator/Devices/2964FE69-A5FE-4516-B8F1-C45488DBE2B5/data/Containers/Data/Application/1EF9FF0C-903E-481F-87A0-9A1CEDA4DE5D/Documents/
file:///Users/ngoctuan001/Library/Developer/CoreSimulator/Devices/2964FE69-A5FE-4516-B8F1-C45488DBE2B5/data/Containers/Data/Application/1EF9FF0C-903E-481F-87A0-9A1CEDA4DE5D/Library/NoCloud/
file:///Users/ngoctuan001/Library/Developer/CoreSimulator/Devices/2964FE69-A5FE-4516-B8F1-C45488DBE2B5/data/Containers/Data/Application/1EF9FF0C-903E-481F-87A0-9A1CEDA4DE5D/Library/Caches/
但是,当我转到模拟器文件和库时,找不到这些图像


如何使iOS Cordova应用程序动态生成的文件可供最终用户通过库访问?

我改为
Cordova-plugin-x-social-sharing
保存到照片。像android这样的iOS文件系统似乎不容易触摸。如果有帮助。

如果您在plist文件中添加
UIFileSharingEnabled
LSSupportsOpeningDocumentsInPlace
UISupportsDocumentBrowser
全部为是,您的应用程序文件将对iOS浏览器可见。主要来源是

因此,您可以编辑您的
config.xml
,将这些条目添加到



Jake,你找到其他解决方案了吗?@JoãoPimentelFerreira嗨,已经很长时间了,所以我现在不太确定,根据我下面的回答,似乎我换了不同的插件。也许你可以试着说你很聪明!注意,我必须在平台上删除/添加ios,才能在Xcode中显示选项(app name>Resources>app name Info.plist)。另外,选项值在Xcode中默认为“否”,因此我不得不手动将其更改为“是”。(Xcode=12.4,Cordova=10.0.0,Cordova ios=6.2.0。)将每个条目中的
更改为
YES
,为我解决了这个问题。@phatpaul感谢,根据Lyoops编辑,看起来你一开始是对的。apple拒绝了我的应用程序,错误为ITMS-90039:“类型不匹配。Info.plist key UIFileSharingEnabled的值不是该键所需的类型。”我将其更改回并接受该键。@phatpaul您能分享您的分辨率吗?使用“”时,plist值设置为false