我想知道如何发送包含多行的Apple推送通知消息。使用'\ n'似乎不起作用。
类似的东西:
第一行
第二行
现在它似乎完全忽略了这条消息。
答案 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" }
结果:
带有逃避的有效负载
{ "alert": "Send me\\na push with escape", "sound": "default" }
结果:
答案 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”