在Ionic 2中解除装载

时间:2017-05-13 23:28:07

标签: android angular typescript ionic2

所以在我的应用程序中,我有一个按钮,当点击打开WhatsApp并发出声音。在这个按钮上,我附加了一个方法,当单击按钮时,它会创建一个离子加载组件。我遇到的问题是“loading.dismiss()”。我想这样做,以便当WhatsApp启动时,装载机被解雇。

我尝试过使用ionViewWillLeave,但它不起作用,因为Ionic无法识别我的应用程序打开WhatsApp作为“离开”。

soundboard.html (带点击方式的按钮)

<button ion-button (click)="share(sound.file)"></button>

soundboard.ts

loading = this.loadingCtrl;

public share(file: string): void {
    let loading = this.loadingCtrl.create({
    content: 'Please wait...'
  });
    loading.present();
    SocialSharing.shareViaWhatsAppToReceiver(null, null, file);
    this.turnoff(loading) /* calls the loading.dismiss */
 }

ionViewWillLeave(loading) {
   loading.dismiss();
}

2 个答案:

答案 0 :(得分:2)

根据docs,您的函数返回一个promise。我会在then和/或catch中解雇。

  SocialSharing.shareViaWhatsAppToReceiver(null, null, file)
    .then(res=>{
        loading.dismiss();
      }).catch(err=>{
        loading.dismiss();
        console.log(err);
      });

答案 1 :(得分:0)

我猜你正在使用SocialSharing插件。 https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin  您可以将成功回调传递给shareViaWhatsAppToReceiver(),并在其中调用loading.dismiss()。

从doc:

复制
<button onclick="window.plugins.socialsharing.shareViaWhatsAppToReceiver(receiver, 'Message via WhatsApp', null /* img */, null /* url */, function() {console.log('share ok')})">msg via WhatsApp for Addressbook ID 101</button>