Ios 爱奥尼亚2:尝试访问FileTransfer插件,但它';它没有安装

Ios 爱奥尼亚2:尝试访问FileTransfer插件,但它';它没有安装,ios,ionic2,cordova-plugins,ionic-native,Ios,Ionic2,Cordova Plugins,Ionic Native,我们正在开发一个应用程序,它使用本机文件传输插件。但由于一个奇怪的问题,我们无法为iOS创建试飞/发布版本 问题: 即使在成功安装“文件传输”插件后,我们在运行应用程序时仍会看到以下错误 ionic cordova run ios -lc console.warn: Native: tried accessing the FileTransfer plugin but it's not installed. 当我们点击一个调用fileTransfer.download(..)方法的按钮时,应

我们正在开发一个应用程序,它使用本机文件传输插件。但由于一个奇怪的问题,我们无法为iOS创建试飞/发布版本

问题: 即使在成功安装“文件传输”插件后,我们在运行应用程序时仍会看到以下错误

ionic cordova run ios -lc

console.warn: Native: tried accessing the FileTransfer plugin but it's not installed.
当我们点击一个调用
fileTransfer.download(..)
方法的按钮时,应用程序停止运行,不会抛出任何错误

我已经在以下位置创建了一篇详细的日志和代码:


有什么帮助吗?

经过彻底的头脑风暴,我找到了答案-

我的问题是,FileTransfer对象可以从
平台就绪
功能内部访问,但不能在
提供者
内部访问-这也适用于iOS[Android版本工作正常]

以下是我所做的:

由于我需要
提供程序
中的
文件传输
实例,我创建了一个变量和一个更新程序方法-

private fileTransfer: any;

public setFileTransferRef( param ){
   this.fileTransfer = param;
}
由于我可以访问
platform.ready()
中的
FileTransfer
,我在那里实例化了
FileTransferObject
,并更新了
提供程序,如下所示-

initializeApp() {
    this.platform.ready().then(() => {
        console.log('fileTransfer: ');   
        console.log(JSON.stringify(this.fileTransfer));
        //
        let fileTransfer: FileTransferObject = this.fileTransfer.create();
        //
        this.mediaIOSProv.setFileTransferRef(fileTransfer);
        .....
        ....
  • 其中,
    MediaIOProv
    是负责下载zip的提供商
我还将
cordova.js
包含在
build/vendor.js
之后的
index.html
-(我看到一些帖子,其中开发者报告这样做解决了他们缺少的插件问题)-尽管没有这样的官方文档


由于应用程序在iOS上成功运行-我不敢更改 放置
cordova.js

我想是-

1:最好创建一个
提供者
来存储平台中实例化的每个本机插件的引用,并在需要时使用引用

2:可能缺少一些信息,特别是关于iOS的信息,关于
Ionic本机包装器


任何建议/讨论都将不胜感激。

经过彻底的头脑风暴,我找到了答案-

我的问题是,FileTransfer对象可以从
平台就绪
功能内部访问,但不能在
提供者
内部访问-这也适用于iOS[Android版本工作正常]

以下是我所做的:

由于我需要
提供程序
中的
文件传输
实例,我创建了一个变量和一个更新程序方法-

private fileTransfer: any;

public setFileTransferRef( param ){
   this.fileTransfer = param;
}
由于我可以访问
platform.ready()
中的
FileTransfer
,我在那里实例化了
FileTransferObject
,并更新了
提供程序,如下所示-

initializeApp() {
    this.platform.ready().then(() => {
        console.log('fileTransfer: ');   
        console.log(JSON.stringify(this.fileTransfer));
        //
        let fileTransfer: FileTransferObject = this.fileTransfer.create();
        //
        this.mediaIOSProv.setFileTransferRef(fileTransfer);
        .....
        ....
  • 其中,
    MediaIOProv
    是负责下载zip的提供商
我还将
cordova.js
包含在
build/vendor.js
之后的
index.html
-(我看到一些帖子,其中开发者报告这样做解决了他们缺少的插件问题)-尽管没有这样的官方文档


由于应用程序在iOS上成功运行-我不敢更改 放置
cordova.js

我想是-

1:最好创建一个
提供者
来存储平台中实例化的每个本机插件的引用,并在需要时使用引用

2:可能缺少一些信息,特别是关于iOS的信息,关于
Ionic本机包装器

如有任何建议/讨论,我们将不胜感激。

请使用: 运行
ionic cordova平台添加[platform]
然后
ionic cordova构建[platform]
并在您的设备中运行。 这对我有用

使用以下命令: 运行
ionic cordova平台添加[platform]
然后
ionic cordova构建[platform]
并在您的设备中运行。 这对我有用

卸下平台

  • 爱奥尼亚cordova平台rm android
  • 然后再次添加平台

  • 爱奥尼亚cordova平台添加android
  • 卸下平台

  • 爱奥尼亚cordova平台rm android
  • 然后再次添加平台

  • 爱奥尼亚cordova平台添加android