我目前正在将我的iOS和Android应用程序从Urban airship更改为Pushwoosh !一切似乎都很好,但我有一些小问题。
-
是否有可能改变应用程序内的按钮?当我在应用程序中得到推送时,它说"取消"one_answers"确定!"
-
是否可以设置推送仅显示在应用程序外,而不是当你在应用程序内?
希望帮助和感谢提前:-)
编辑:下面是我如何使用PHP从服务器发送推送:
include("includes/pushwoosh.php");
pwCall( 'createMessage', array(
'application' => PW_APPLICATION,
'auth' => PW_AUTH,
'notifications' => array(
array(
'send_date' => 'now',
'devices' => array($row['devicetoken']),
'content' => $userName.' '.$languagestring[59],
'data' => array( 'custom' => 'json data' )
)
)
)
);
我可以在其中设置一些参数来使我的问题工作吗?
您可以从您的服务器更改它。
action-loc-key
字符串或null
如果指定了字符串,则显示一个带有两个按钮的警报,它们的行为说明如表3-1所示。然而,iOS使用字符串作为键在当前本地化中获取要用于的本地化字符串右键的标题,而不是"视图"。如果该值为空,则系统显示一个警报,并有一个OK按钮,简单地解除警报点击时发出警报。有关更多信息,请参阅"本地化格式化字符串"信息。
SDK默认显示警报,你可以在PushNotificationManager中关闭它。m类(https://github.com/shaders/push-notifications-sdk/blob/master/SDK/iPhone/Classes/PushNotificationManager.m)。你应该编辑第158行
showPushnotificationAlert = TRUE;//如果不想显示通知,则设置为FALSE
关于更改按钮文本,您可以在相同的代码中编辑它们,第497-494行:
if(!isPushOnStart && showPushnotificationAlert && msgIsString) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:self.appName message:alertMsg delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
alert.tag = ++internalIndex;
[pushNotifications setObject:userInfo forKey:[NSNumber numberWithInt:internalIndex]];
[alert show];
[alert release];
return YES;
}
在Pushwoosh API中还没有改变动作按钮标题的标准方法。但我找到了一个解决办法。
你可以通过"ios_root_params"参数向最终负载注入任何你想要的数据。
动作按钮标题可以更改,如果键aps.alert。有效载荷中存在Action-loc-key。您可以发送以下请求:
{"request":{
"auth":"AUTH TOKEN",
"application":"APP CODE",
"notifications":[{
"send_date":"now",
"ios_root_params":{
"aps":{
"alert":{
"body":"message body",
"action-loc-key":"custom caption"
}
}
}
}]
}}
你在"ios_root_params"中定义的任何json都将与push payload合并,并且ios_root_params在合并时具有优先级。
您可以省略字段"content",因为"aps"字典将被我们的数据覆盖。