所以在我的应用程序中,我有一个按钮,当点击打开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();
}
答案 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>