android - Ionic 4 文件上传到上一页

标签 android ios angular cordova ionic-framework

使用 IONIC 4 处理项目并在使用文件传输插件将图像/照片上传到远程服务器时遇到奇怪的行为。

在两种情况下(成功/失败),上传图像应用程序后转到上一页。

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 (cordova-lib@9.0.1)
   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

编辑: 添加了新信息。

最佳答案

已解决的问题:

实际发生了什么:

我有网络插件来检查连接是否丢失,每当应用程序来自相机时,网络插件调用并将应用程序路由到上一页时,打开相机就会导致这种情况。所以我不得不改变网络逻辑,它解决了我的问题。 现在,我注意到另一件事,当你打开安装了网络插件的相机时,它会检查互联网连接。为什么?

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

相关文章:

android - 如何开始在 Android 上学习低级编码

android - 当日志显示没有错误时,为什么我的推送通知没有出现在设备上?

html - 在绝对 div 中居中绝对 div

java - 导航菜单 fragment 无法初始化其布局的组件

android - 实现 setOnClickListener

ios - 在 iPhone XS 上使用 ARKit2 和 Vision (VNDetectFaceRectanglesRequest) 时如何修复 IOAF 代码 GPU 错误

iphone - 图片没有上传到服务器

ios - 如何检测来自 UIWebView 的身份验证质询?

angular - node_modules/ionic-angular/umd/components/action-sheet/action-sheet-component.d.ts 中的错误 :1:22 - error TS2724

Angular2 使 ViewContainerRef 选择器动态化