2017-09-02 64 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和打字稿 –