无法找到变量:IOS上的FileTransfer

时间:2016-09-13 10:39:59

标签: ios ionic-framework cordova-plugins ionic2 file-transfer

我使用了cordova的FileTransfer插件和ionic-native包装器。该应用程序在iPhone模拟器中成功运行,但当我在移动设备中运行应用程序时,我在控制台中收到错误:

带有一些堆栈跟踪的

ORIGINAL EXCEPTION: ReferenceError: Can't find variable: FileTransfer

调查结果:

  • 该应用在Android设备上运行没有任何问题
  • 重新设定离子状态无效
  • 在控制台中输入FileTransfer会返回其对象。所以,很明显它已被初始化
  • 即使有其他插件(camera& datepicker),当从应用程序中删除对该插件的所有引用时,应用程序运行良好。因此,只有file-transfer插件才会产生问题。
  • 在应用程序中运行的应用程序大约有十分之一没有任何错误,但在重新启动应用程序后崩溃了。

使用的插件

  • cordova-plugin-camera
  • cordova-plugin-datepicker
  • cordova-plugin-file-transfer
  • cordova-plugin-whitelist

规格:

  • 模拟器iPhone6 / iOS 9.3
  • 设备iPhone6 / iOS 9.3.1& iPhone4S / iOS 9.3.5
  • Cordova CLI:6.2.0
  • Gulp版本:CLI版本3.9.1
  • Gulp local:本地版本3.9.1
  • Ionic Framework版本:2.0.0-beta.10
  • Ionic CLI版本:2.0.0
  • Ionic App Lib版本:2.0.0-beta.20
  • ios-deploy版本:1.8.6
  • ios-sim版本:5.0.8
  • 操作系统:Mac OS X El Capitan
  • 节点版本:v4.4.5
  • Xcode版本:Xcode 7.3.1构建版本7D1014

代码:

import {Injectable} from '@angular/core';
import {Transfer} from 'ionic-native';
@Injectable()
export class MyClass {
    fileTransfer = new Transfer();
    constructor(){
    }
    public upload (url: string, image: string, onProgress: any, opt?: any){
        let options = {
            fileKey: "file",
            mimeType: "image/png",
            chunkedMode: false
        }
        this.fileTransfer.onProgress(onProgress);
        return this.fileTransfer.upload(image, this.baseUrl + url, options);
    }
}

1 个答案:

答案 0 :(得分:0)

卸载所有插件并只运行ionic run ios命令修复了此问题。由于ionic state reset也做同样的事情,这可能是CLI的问题。