下面是一种解决推送通知跳转指定页面的方式
我们接入个推时会导入两个个推的Service服务,在服务里有个方法在我们点击了通知之后会触发回调,下面就是那个方法
// 通知点击,只有个推通道下发的通知会回调此方法
@Override
public void onNotificationMessageClicked(Context context, GTNotificationMessage gtNotificationMessage) {
Logger.i("推送消息被点击了:");
this.clickMessageId =gtNotificationMessage.getMessageId();
}
在这个方法里我们把这条消息的id给记录下来。
在回调上面那个方法之后,会再回调下面这个方法,这个方法就是平时我们接收透传消息用的方法。推送通知里带的参数会在我们点击了通知后,通过透传的这个方法给我们。参数拿取和透传一样。
// 透穿消息服务端发过来直接就回触发这个方法。 通知栏是点击通知栏消息后才会触发这个方法
@Override
public void onReceiveMessageData(final Context context, GTTransmitMessage msg) {
String msgStr = new String(msg.getPayload());
Logger.i("收到个推透传消息:"+msgStr);
if(clickMessageId!=null){//有点击过了通知
if(AppStrUtil.equals(clickMessageId,msg.getMessageId())){
//做后面的页面跳转处理
}
}
clickMessageId=null;
}