我在浏览器中使用电容器运行ionic 5
APP,并且尝试使用文件传输功能。我遵循文档https://ionicframework.com/docs/native/file-transfer并使用电容器配置我的应用程序。因此运行:
npm install cordova-plugin-file-transfer
npm install @ionic-native/file-transfer
ionic cap sync
在我的app.module中,我注册了提供者:
import { FileTransfer } from '@ionic-native/file-transfer/ngx';
import { File } from '@ionic-native/file/ngx';
...
providers: [
StatusBar,
SplashScreen,
...
FileTransfer,
File
],
请注意,我还安装了本机文件包,因此总共有以下4个新包:
"@ionic-native/file": "^5.27.0",
"@ionic-native/file-transfer": "^5.27.0",
"cordova-plugin-file": "^6.0.2",
"cordova-plugin-file-transfer": "^1.7.1",
我在组件中的代码是:
import { Input, Component } from '@angular/core';
import { FileTransfer, FileTransferObject } from '@ionic-native/file-transfer/ngx';
import { File } from '@ionic-native/file/ngx';
@Component({
selector: 'app-order-detail-order-card',
templateUrl: './order-detail-order-card.page.html'
})
export class OrderDetailOrderCardPage {
@Input() pdfUrl: string;
@Input() orderCardId: string;
constructor(private transfer: FileTransfer, private file: File) { }
public downloadFile(): void {
const fileTransfer: FileTransferObject = this.transfer.create();
fileTransfer.download(this.pdfUrl, this.file.applicationDirectory + `${orderCardId}.pdf`).then((entry) => {
console.log('download complete: ' + entry.toURL());
}, (error) => {
// handle error
});
}
}
当我在浏览器中运行该应用程序时,收到以下警告,我不确定该文件是否应该下载到某处?
common.js:284 Native: tried calling SplashScreen.hide, but Cordova is not available. Make sure to include cordova.js or run in a device/simulator
即使我没有得到文件,我也希望看到“下载完成”消息。对于我是否必须在应用程序中配置其他内容才能在本地运行它,还是我只需要在模拟器或设备本身中使用此功能,我还是不太清楚。
还需要配置什么才能使其正常工作?
答案 0 :(得分:0)
common.js:284 Native: tried calling SplashScreen.hide, but Cordova is not available. Make sure to include cordova.js or run in a device/simulator
这意味着您正在使用没有任何启动画面的浏览器模拟器,您可以完全忽略该警告(您不会使用模拟器或真实设备获得它)。
您也应该粘贴该页面的 html 部分,因为可能下载没有开始,因为网址不完整,并且没有继续执行“then()”
也许我错了,但这是可能的。