如何使用多行(即带有'\ n'字符)发送Apple推送通知?

时间:2011-10-09 21:56:49

标签: ios push-notification

我想知道如何发送包含多行的Apple推送通知消息。使用'\ n'似乎不起作用。

类似的东西:

  

第一行

     

第二行

现在它似乎完全忽略了这条消息。

10 个答案:

答案 0 :(得分:4)

添加可本地化的字符串文件并在那里添加字符串。例如,您可以使用以下内容:

"Push_String" = "My push string with a line break\n and argument: %@";

现在在通知有效负载中,使用loc-key和loc-args属性,例如:

"loc-key":"Push_String","loc-args":["My argument!"]

现在你的通知应该有一个换行符。

答案 1 :(得分:4)

您无法使用转义发送多行推送,它将无法正常工作!

只是试图用Parse发送推送:

没有逃避的有效负载:

{ "alert": "Send me\na push without escape", "sound": "default" }

结果: enter image description here

带有逃避的有效负载

{ "alert": "Send me\\na push with escape", "sound": "default" }

结果:

enter image description here

答案 2 :(得分:2)

这是您想要了解的解决方案!

第一行\ r \ n 第二行

答案 3 :(得分:2)

对字符串使用双引号:

string = "first line  \r\n Second line ";

答案 4 :(得分:2)

我在PHP中使用了chr(10)来发送换行符作为推送消息的一部分,例如。

$message = "Hey {user_firstname}! " . chr(10) . "you have a new message!"

答案 5 :(得分:1)

Apple push会因各种原因拒绝字符串。我测试了推送传递的各种场景,这是我的工作修复(在python中):

#  Apple rejects push payloads > 256 bytes (truncate msg to < 120 bytes to be safe)
if len(push_str) > 120:
    push_str = push_str[0:120-3] + '...'

# Apple push rejects all quotes, remove them
import re
push_str = re.sub("[\"']", '', push_str)

# Apple push needs to newlines escaped
import MySQLdb
push_str = MySQLdb.escape_string(push_str)

# send it
import APNSWrapper
wrapper = APNSWrapper.APNSNotificationWrapper(certificate=...)
message = APNSWrapper.APNSNotification()
message.token(...)
message.badge(1)
message.alert(push_str)
message.sound("default")
wrapper.append(message)
wrapper.notify()

答案 6 :(得分:0)

我弄明白了:esacpae \ n。咄。

所以使用:

First line \\n
Second Line

而不是

First line \n
Second Line

答案 7 :(得分:0)

你可以尝试:

alert:"this is 1st line \\n"

答案 8 :(得分:0)

也许您正在寻找的是subtitle属性。参见Multi line title in push notification for iOS

答案 9 :(得分:0)

If your payload have "\\n" do this:

首先解析这样的有效负载

title = First line \nSecond Line //either \n or \\n
title = title.replacingOccurrences(of: "\\\\n", with: "\n", options: .regularExpression)

最好的解决方案是使您的有效负载为“ \ n”或“ \ r \ n”