Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.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
Can';找不到变量:IOS上的文件传输_Ios_Ionic Framework_Cordova Plugins_Ionic2_File Transfer - Fatal编程技术网

Can';找不到变量:IOS上的文件传输

Can';找不到变量:IOS上的文件传输,ios,ionic-framework,cordova-plugins,ionic2,file-transfer,Ios,Ionic Framework,Cordova Plugins,Ionic2,File Transfer,我正在使用cordova的FileTransfer插件和ionic native包装器。该应用程序在iPhone模拟器中成功运行,但当我在移动设备中运行该应用程序时,控制台中出现以下错误: 原始异常:ReferenceError:找不到具有某些堆栈跟踪的变量:FileTransfer 调查结果: import {Injectable} from '@angular/core'; import {Transfer} from 'ionic-native'; @Injectable() export

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

原始异常:ReferenceError:找不到具有某些堆栈跟踪的变量:FileTransfer

调查结果:

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);
    }
}
  • 该应用程序在Android设备上运行时没有任何问题
  • 重置离子状态没有影响
  • 在控制台中输入
    FileTransfer
    ,将返回其对象。因此,很明显,它已被初始化
  • 当从应用程序中删除对该插件的所有引用时,应用程序运行良好,即使存在其他插件(camera&datepicker)。因此,只有
    文件传输
    插件才会产生问题
  • 大约十分之一的应用程序在设备中运行时没有任何错误,但在重新启动应用程序后崩溃
使用的插件

  • cordova插件摄像头
  • cordova插件日期选择器
  • cordova插件文件传输
  • cordova插件白名单
规格:

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);
    }
}
  • 模拟器iPhone6/iOS 9.3
  • 设备iPhone6/iOS 9.3.1和iPhone4S/iOS 9.3.5
  • Cordova CLI:6.2.0
  • Gulp版本:CLI版本3.9.1
  • 本地版:本地版本3.9.1
  • 离子框架版本:2.0.0-beta.10
  • 爱奥尼亚CLI版本:2.0.0
  • 爱奥尼亚应用程序库版本:2.0.0-beta.20
  • ios部署版本: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);
    }
}

卸载所有插件并仅运行
ionic run ios
命令修复了此问题。由于
ionic state reset
也执行相同的操作,这可能是CLI的问题。

卸载所有插件并仅运行
ionic run ios
命令修复了此问题。由于离子状态重置也会执行相同的操作,这可能是CLI的问题。

您可以在使用FileTransfer的地方与我们共享代码吗?我相信你有这个错误,因为插件没有启动时,你调用它。在platform.ready()@e666添加了代码之后,您需要使用所有插件。您可以在使用FileTransfer的地方与我们共享代码吗?我相信你有这个错误,因为插件没有启动时,你调用它。您需要在platform.ready()之后使用所有插件@e666添加代码