FileTransfer 插件,下载未在 iOS 开始,回调无错误
FileTransfer plugin, download not starting on iOS, no errors on callbacks
我正在尝试创建一个 Ionic 3 应用程序,它可以从 Internet 下载图像并将其存储在设备文件系统中。
在 Android 设备上一切正常,在 iOS 上对 FileTransferObject.download(...) 的调用似乎挂起,什么也没做;我没有收到错误回调,也没有下载任何内容。
我创建了一个示例存储库,您可以在以下位置查看:https://github.com/andreabarani/TestFileTransferPlugin
你会发现里面有2个分支:
- ‘master’使用插件的1.6.3版本
- ‘file-transfer-plugin-1.7.0’ 使用版本 1.7.0
两个版本在 iOS 上产生相同的结果,而 1.7.0 使 Android 构建失败。
非常感谢任何帮助,请提前 tnx
安德里亚
我找到了解决方案:我的错误是过早地创建了 FileTransferObject,可能是在平台尚未准备好时;我的代码是这样的:
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [FileTransfer, File]
})
export class HomePage {
private fileTransfer: FileTransferObject = this.transfer.create(); // <-- here is too soon to create it
...
这是正确的做法:
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [FileTransfer, File]
})
export class HomePage {
private fileTransfer: FileTransferObject;
...
...
constructor(public navCtrl: NavController, private transfer: FileTransfer, private file: File, private alertCtrl: AlertController, private platform: Platform) {
}
downloadFile() {
// using a local constant is also a valid alternative,
// the important thing is to instantiate the object at this time
// const fileTransfer: FileTransferObject = this.transfer.create();
this.fileTransfer = this.transfer.create();
关于 Android FileTransfer 插件 1.7.0 版的编译问题,已通过将 Android Studio 从 2.3.3 更新到 3.0.1 版解决了所有问题。
完整的工作应用程序可在此处获得:https://github.com/andreabarani/TestFileTransferPlugin
我正在尝试创建一个 Ionic 3 应用程序,它可以从 Internet 下载图像并将其存储在设备文件系统中。 在 Android 设备上一切正常,在 iOS 上对 FileTransferObject.download(...) 的调用似乎挂起,什么也没做;我没有收到错误回调,也没有下载任何内容。 我创建了一个示例存储库,您可以在以下位置查看:https://github.com/andreabarani/TestFileTransferPlugin 你会发现里面有2个分支:
- ‘master’使用插件的1.6.3版本
- ‘file-transfer-plugin-1.7.0’ 使用版本 1.7.0
两个版本在 iOS 上产生相同的结果,而 1.7.0 使 Android 构建失败。
非常感谢任何帮助,请提前 tnx 安德里亚
我找到了解决方案:我的错误是过早地创建了 FileTransferObject,可能是在平台尚未准备好时;我的代码是这样的:
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [FileTransfer, File]
})
export class HomePage {
private fileTransfer: FileTransferObject = this.transfer.create(); // <-- here is too soon to create it
...
这是正确的做法:
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [FileTransfer, File]
})
export class HomePage {
private fileTransfer: FileTransferObject;
...
...
constructor(public navCtrl: NavController, private transfer: FileTransfer, private file: File, private alertCtrl: AlertController, private platform: Platform) {
}
downloadFile() {
// using a local constant is also a valid alternative,
// the important thing is to instantiate the object at this time
// const fileTransfer: FileTransferObject = this.transfer.create();
this.fileTransfer = this.transfer.create();
关于 Android FileTransfer 插件 1.7.0 版的编译问题,已通过将 Android Studio 从 2.3.3 更新到 3.0.1 版解决了所有问题。
完整的工作应用程序可在此处获得:https://github.com/andreabarani/TestFileTransferPlugin