使用IONIC 4处理项目并面对奇怪行为,同时使用文件传输插件将图像/照片上传到远程服务器。
上载Image应用程序后,两种情况都转到上一页(成功/失败)。
import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
import { FileTransfer, FileUploadOptions, FileTransferObject } from '@ionic-native/file-transfer/ngx';
import { File } from '@ionic-native/file/ngx';
constructor{
private camera: Camera,
private transfer: FileTransfer,
private file: File,
) {
}
takePhoto(){
const options: CameraOptions = {
quality: 50,
destinationType: this.camera.DestinationType.FILE_URI,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
sourceType: this.camera.PictureSourceType.CAMERA,
correctOrientation: true
}
this.camera.getPicture(options).then((imageData) => {
// imageData is either a base64 encoded string or a file URI
// If it's base64 (DATA_URL):
this.uploadPhoto(imageData);
}, (err) => {
// Handle error
});
}
uploadPhoto(path){
const fileTransfer: FileTransferObject = this.transfer.create();
let options: FileUploadOptions = {
fileKey: 'file',
fileName: '.png',
chunkedMode: false,
//mimeType: "image/jpeg",
}
fileTransfer.upload(path, 'my remote server url', options)
.then((data) => {
console.log(JSON.parse(data.response));
let res = JSON.parse(data.response);
if (res.status == 1) {
this.general.presentToast('Event Image Updated');
}
}, (err) => {
console.log(err);
});
}
上载图像应用程序后,意外转到上一页。
插件详细信息:
cordova-plugin-camera 4.1.0 "Camera"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-file-transfer 1.7.1 "File Transfer"
Ionic:
Ionic CLI : 5.2.1 (C:\Users\ammar\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : @ionic/angular 4.6.2
@angular-devkit/build-angular : 0.13.9
@angular-devkit/schematics : 7.3.9
@angular/cli : 7.3.9
@ionic/angular-toolkit : 1.5.1
Cordova:
Cordova CLI : 9.0.0 ([email protected])
Cordova Platforms : android 8.0.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 13 other plugins)
Utility:
cordova-res : 0.5.1
native-run : 0.2.7
System:
Android SDK Tools : 26.1.1 (C:\Users\ammar\AppData\Local\Android\Sdk)
NodeJS : v10.15.3 (C:\Program Files\nodejs\node.exe)
npm : 6.11.3
OS : Windows 10
编辑:
添加了新信息。
最佳答案
问题解决了:
实际发生了什么:
我有网络插件来检查连接是否丢失,并且只要应用程序来自摄像机,网络插件就会调用该应用程序并将其路由到上一页,因此打开相机会导致此问题。所以我不得不改变网络逻辑,这解决了我的问题。
现在,我注意到另一件事,当您打开安装了网络插件的相机时,它将检查互联网连接。为什么?