【问题标题】:Can't find variable: FileTransfer on IOS找不到变量:IOS 上的 FileTransfer
【发布时间】:2017-01-20 22:28:30
【问题描述】:

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

ORIGINAL EXCEPTION: ReferenceError: Can't find variable: FileTransfer 带有一些堆栈跟踪。

调查结果:

  • 该应用在 Android 设备上运行没有任何问题
  • 重置离子状态无效
  • 在控制台中输入FileTransfer 会返回其对象。所以,很明显它已经被初始化了
  • 当从应用程序中删除对该插件的所有引用时,应用程序运行良好,即使还有其他插件(相机和日期选择器)。所以,只有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
  • 科尔多瓦 CLI:6.2.0
  • Gulp 版本:CLI 版本 3.9.1
  • Gulp local:本地版本 3.9.1
  • Ionic 框架版本:2.0.0-beta.10
  • Ionic CLI 版本:2.0.0
  • Ionic 应用程序库版本: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);
    }
}

【问题讨论】:

  • 你能分享一下你使用 FileTransfer 的代码吗?我相信你有这个错误,因为当你调用它时插件没有启动。您需要在platform.ready()之后使用所有插件
  • @e666 添加了代码

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多