微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

platform.ready() 方法未在使用 ionic 的 Android 设备中触发

如何解决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 举报,一经查实,本站将立刻删除。