gpt4 book ai didi

android - Ionic 3 - native 文件问题

转载 作者:行者123 更新时间:2023-11-29 19:07:38 26 4
gpt4 key购买 nike

我似乎找不到任何有关尝试将相机拍摄的文件复制到数据存储时遇到的错误的信息。这是我的功能(几乎每个人似乎都在做):

import { File } from '@ionic-native/file';

// stuff here

constructor(public navCtrl: NavController, public navParams: NavParams, private StorageProvider: StorageProvider, public viewCtrl: ViewController, private camera: Camera, public platform: Platform, private file: File{

}

// other stuff here

copyFileToLocalDir() {

let d = new Date();
let n = d.getTime();
let newFileName = n + ".jpg";
console.log('new name',newFileName);

this.file.copyFile(this.imagePath, this.imageName, cordova.file.dataDirectory, newFileName)
.then(success => {
this.lastImage = newFileName;
}, error => {
console.log('error saving');
});
}

导致错误的行是:this.file.copyFile(...

我在模拟器或设备上运行时遇到的错误是:ERROR 错误:未捕获( promise ):无效操作

ionic 信息:

cli packages: (/Users/billb/dev/customer-mkt-app/node_modules)

@ionic/cli-utils : 1.12.0
ionic (Ionic CLI) : 3.12.0

global packages:

cordova (Cordova CLI) : 7.0.1

local packages:

@ionic/app-scripts : 3.0.0
Cordova Platforms : android 6.2.3 ios 4.4.0
Ionic Framework : ionic-angular 3.3.0

System:

Android SDK Tools : 26.1.1
ios-deploy : 1.9.0
ios-sim : 5.0.10
Node : v7.8.0
npm : 4.6.1
OS : macOS Sierra
Xcode : Xcode 9.0 Build version 9A235

Misc:

backend : legacy

有什么想法吗?此函数 copyFileToLocalDir() 几乎取自 File 插件的几个示例,包括来自插件编写者的示例。

最佳答案

所以从 David 上面的评论来看,这促使我进一步挖掘并更好地理解 File 插件在做什么。感谢这两个问题的回答herehere ,我终于想通了这件事。这是我的最终代码:

copyFileToLocalDir() {
let d = new Date();
let n = d.getTime();
let newFileName = n + ".jpg";
// cordova.file.dataDirectory
let externalStoragePath: string = cordova.file.dataDirectory;

this.file.resolveLocalFilesystemUrl(this.imagePath + this.imageName)
.then((entry: any)=>{
console.log('entry',entry);

this.file.resolveLocalFilesystemUrl(externalStoragePath)
.then((dirEntry: any)=>{

entry.copyTo(dirEntry, newFileName, this.successCopy, this.failCopy);

}).catch((error)=>{
console.log(error);
});

}).catch((error)=>{
console.log(error);
});

您必须创建 2 个对象,一个是当前文件 (entry),另一个是将文件复制到的路径 (dirEntry)。这是解决这个问题的关键。

关于android - Ionic 3 - native 文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46594304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com