0

我目前正在为我的 iOS 和 Android 应用程序从 Urban airship 更改为 Pushwoosh!一切似乎都很好,但有一些小问题。

  1. 是否可以更改应用程序中按钮的内容?当我在应用程序中收到推送时,会显示“取消”和“确定!”。

  2. 是否可以将推送设置为仅在应用程序外部显示而不是在应用程序内显示?

希望提前帮助和感谢:-)

编辑:

以下是我使用 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' )
            )
        )
    )
);

我可以在其中设置某种参数以使我的问题有效吗?

4

3 回答 3

0

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;
}
于 2013-04-03T16:43:35.417 回答
0

您可以从您的服务器更改它。

动作锁定键

字符串或空

如果指定了字符串,则显示带有两个按钮的警报,其行为在表 3-1 中描述。但是,iOS 使用字符串作为键来获取当前本地化中的本地化字符串,以用于右键的标题而不是“查看”。如果该值为空,则系统会显示一个带有单个 OK 按钮的警报,该按钮在点击时会简单地关闭警报。有关详细信息,请参阅“本地化格式化字符串”。

于 2013-03-25T13:57:31.850 回答
0

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 都将与推送负载合并,并且 ios_root_params 在合并时具有优先权。

您可以省略字段“content”,因为“aps”字典将被我们的数据覆盖。

于 2013-12-13T11:53:25.530 回答