2017-09-02 65 views
0

我想從服務器向離子客戶端發送推送通知,並在客戶端顯示此通知(如電話呼叫)(移動設備應播放聲音並顯示「接受」或「拒絕」帶有來電者信息的按鈕)。如果移動應用程序沒有運行或在後臺運行,它應該可以工作,這就是我決定使用FCM消息的原因。使用離子框架的電話通知模擬

this.storage.get('firebase_token').then((token) => { 
    console.log('Orders get firebase token and call register. Token: ' + token); 
    this.agentService.registerPushNotifications(token,() => { 
     this.firebase.onNotificationOpen().subscribe((notification) => { 

      // How to open the app and show the page with a ringtone ?? 

     }); 
    }); 
}); 

如何在傳入推送通知中打開應用並顯示鈴聲的呼叫頁面?或者也許有更好的方法來實現這種功能。

+1

你所要求的是不可能的,這不是推送通知所能做到的。 IONIC不能做那樣的工作 –

+0

@AhmadAlfy過程就像這樣:A向B發送一個要約,而B向B發送一個提示和一個帶有Accept/Reject按鈕的傳入要約頁面。 PersonB的應用程序可能無法運行或處於後臺模式。如何用離子框架完成此功能?在此先感謝 – 0bj3ct

+0

您可以發送常規推送通知,並在用戶打開它時將其重定向到應用程序內部的一個頁面,要求他批准或拒絕。 –

回答

1

你所要求的(像電話一樣的格式)在Ionic中是不可能的。但是,您可以將用戶重定向到應用程序中的一個視圖,在該視圖中請求他採​​取行動。

以推送通知爲例。在app.components.ts我初始化此功能時,該平臺已準備就緒

initializePushNotifications() { 
    let pushObject = this.push.init({ 
     android: { 
     senderID: 'Your ID Here', 
     icon: 'logo' 
     }, 
     ios: { 
     alert: true, 
     badge: false, 
     sound: true 
     }, 
     windows: {} 
    }); 
    if (!pushObject['error']) { 
     pushObject.on('registration').subscribe((data: RegistrationEventResponse) => { 
      // Whatever you want to do 
     }, err => { 
     console.log('Couldnt register:', err); 
     }) 
     pushObject.on('notification').subscribe((data: any) => { 
     let self = this; 
     // When the user click the push notification 
     if (!data.additionalData.foreground) { 
      switch (data.additionalData.entity_type) { 
      case 'takeAction': 
       this.openView(data.additionalData.user_name, data.additionalData.id); 
       break; 
       ...... 
      } 
     } 
     }); 
     pushObject.on('error').subscribe((e: any) => { 
     console.log(e.message); 
     }); 

    } else { 
     console.error(pushObject); 
    } 
    } 

看,我們在關鍵additionalData添加一個對象,你可以通過任何你想要的推消息中。你可以通過entity_type等值takeAction。當用戶點擊它時,您可以打開一個新視圖並傳遞其他參數,如用戶名稱和實體的ID等。

在此屏幕上,您可以打開一個提醒,要求用戶單擊「是」或「否」,並根據他的輸入發出正確的請求。

注意

我知道這是你問什麼,但你的要求不能使用離子滿足不同。

+0

感謝您的回覆,我正在使用Ionic的最新版本。看來你的版本是Ionic 1. – 0bj3ct

+0

不是,那是離子2和打字稿 –