2014-06-18 41 views
1

我正在使用解析来发送和处理android和ios的通知。我不想处理有关为ios或android发送不同通知的部分,因为确定用户正在使用的设备或操作系统并不容易。用户可以同时在这两个生态系统上使用该应用程序,因此我想发送可在android和ios上运行的通知。当使用“alert”键时,有没有办法解析拦截我的通知?

到目前为止,我已经成功,两种设备类型都会收到通知。与Android和解析的东西,解析是非常固执的。当使用“alert”或“title”键时,解析会在我的BroadcastReceiver处理它之前显示通知。

我做了一些研究,并根据我的理解,将密钥从“提醒”更改为其他提示。我的问题是,我不得不使用“alert”来保持它在iphones上的工作。有什么我可以做,并保持我的BroadcastReceiver没有解析拦截通知?

有没有办法改变“警报”键,仍然保持在iOS/iPhone手机的功能?

在此先感谢。

回答

0

我可以通过在iOS和Android的CloudCode中对Parse.Push.send()进行两次不同的调用来解决此问题。

// iOS 
query.equals("deviceType", "ios"); 
data = {"alert":"some alert", "data":{other params here}}; 
Parse.Push.send({ 
    where: query, 
    data: data 
} 

// Android 
query.equals("deviceType", "android"); 
data = {"data":{"alert":"some alert", other params here}, "action":"com.mycompany.customBroadcastReceiver_actionId"}; 
Parse.Push.send({ 
    where: query, 
    data: data 
} 

对于Android,移动“警报”(和“称号”,如果适用)从顶层参数数据PARAMS内将继续解析的PushService截获推送通知符,并创立了自己的状态栏通知。

您现在可以禁用Parse的接收器,并通过自定义广播接收器(由“action”参数标识)自己实现通知。一种黑客,但我需要自定义notifs,似乎没有其他方式来规避Parse的PushService拦截他们,如果你有警报或标题设置。

+0

这就是我们现在正在做的,但我们正在做的PHP代码(PHP代码将解析)也许这样做在CloudCode更好 –

相关问题