如何解决platform.ready() 方法未在使用 ionic 的 Android 设备中触发
我正在开发一个可以上传、下载和删除附件的 Ionic 应用程序 这里我使用了平台内部的文件插件。 ready() 并构建 APK。当我在 Android 设备上运行 APK 时,Platform.ready 中的代码没有被触发是什么问题???
import { Platform } from '@ionic/angular';
import { File } from '@ionic-native/file/ngx';
constructor(private cFile: File,private platform: Platform){}
DownloadAttachment()
{
var buffer = pFilebytearray.replace(/\"/g,"");
var byteCharacters = atob(buffer);
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
this.cFile.dataDirectory
var byteArray = new Uint8Array(byteNumbers);
let aType: any = "";
let aMimeTypeJson = {} as any;
aMimeTypeJson = this.GetMimeType(pAttachmentType.toLowerCase())
aType = aMimeTypeJson.MimeType;
var blob1 = new Blob([byteArray],{ type: aType });
alert("completed the Name Seperation and Blob Creation")
this.platform.ready().then(() => {
alert("Download Starts...");
let result = this.cFile.createDir(this.cFile.externalDataDirectory,"Documents",true).then(data => {
let dirpath = data.toURL();
alert("Dir created at" + dirpath);
this.cFile.writeFile(dirpath,pAttachmentName,blob1,{ replace: true })
.then((Result) => {
this.MessageDialog("Message","Attachment downloaded " + dirpath,false,true);
},(error) => {
this.MessageDialog("Message","Attachment not downloaded",true);
});
}).catch(error => {
alert("error" + error);
});
})
}
解决方法
使用异步后为我解决的错误,等待。这使得代码等待平台准备就绪
async AttachmentDownload(pFilebytearray,pAttachmentType,pAttachmentName): Promise<void> {
alert("entering AttachmentDownload")
var buffer = pFilebytearray.replace(/\"/g,"");
var byteCharacters = atob(buffer);
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
this.cFile.dataDirectory
var byteArray = new Uint8Array(byteNumbers);
let aType: any = "";
let aMimeTypeJson = {} as any;
aMimeTypeJson = this.GetMimeType(pAttachmentType.toLowerCase())
aType = aMimeTypeJson.MimeType;
var blob1 = new Blob([byteArray],{ type: aType });
alert("completed the Name Seperation and Blob Creation")
await this.platform.ready().then(() => {
alert("Download Starts...");
let result = this.cFile.createDir(this.cFile.externalDataDirectory,"Documents",true).then(data => {
let dirpath = data.toURL();
alert("Dir created at" + dirpath);
this.cFile.writeFile(dirpath,pAttachmentName,blob1,{ replace: true })
.then((Result) => {
this.MessageDialog("Message","Attachment downloaded " + dirpath,false,true);
},(error) => {
this.MessageDialog("Message","Attachment not downloaded",true);
});
}).catch(error => {
alert("error" + error);
});
})
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。