2011-10-09 24 views

Trả lời

0

Tôi đã tìm ra: esacpae \ n. Duh.

nên sử dụng:

First line \\n 
Second Line 

thay vì

First line \n 
Second Line 
+8

không hoạt động .. –

+0

này không nên xuống bình chọn. Nó thực tế hoạt động khi chuỗi JSON cuối cùng chứa \\ n. Hãy nhớ rằng ngôn ngữ lập trình của bạn có thể đã thực hiện chuyển đổi đó cho bạn, vì vậy nếu bạn cũng có logic thoát khỏi dấu gạch chéo ngược một lần nữa, điều đó sẽ gây ra vấn đề. – jk7

2

Dưới đây là một giải pháp bạn muốn biết!

Đầu tiên dòng \ r \ n dòng thứ hai

1

của Apple đẩy sẽ từ chối một chuỗi cho một loạt các lý do. Tôi đã thử nghiệm nhiều tình huống khác nhau cho việc gửi đẩy và đây là bản sửa lỗi làm việc của tôi (trong 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() 
3

Thêm chuỗi chuỗi có thể bản địa hóa và thêm chuỗi của bạn vào đó. Ví dụ, bạn có thể có một cái gì đó như:

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

Bây giờ trong tải trọng thông báo của bạn, sử dụng tài sản loc-key và loc-args, ví dụ:

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

Bây giờ bạn nên có một ngắt dòng trong thông báo của bạn.

3

Bạn không thể gửi đẩy nhiều dòng với lối thoát, nó sẽ không hoạt động!

chỉ đơn giản là cố gắng để gửi push với Parse:

Payload mà không có một lối thoát:

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

Kết quả: enter image description here

Payload với một lối thoát

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

Kết quả:

enter image description here

+0

Xin chào Johnny Tôi đang cố gửi thông báo đẩy bằng APNSwrapper. Không có gì xảy ra trên thiết bị. từ APNSWrapper nhập khẩu * # mylocal_DeviceToken = 'e0cf72eaaf87ef73be7a9687a5eb16caaae8da63' mylocal_PushMagic = '9B6A010D-52C0-477C-9C67-59CCE8AB77A2' wrapper = APNSNotificationWrapper ('PushCert.pem', False) message = APNSNotification() message.tokenBase64 (' 5755bfa7297b765cd03fdc6f47a137ef1e9126ef ') # message.token (mylocal_DeviceToken) message.badge (5) message.appendProperty (APNSProperty (' mdm', mylocal_PushMagic)) wrapper.append (message) wrapper.notify() xin vui lòng giúp – sau

+0

không đã làm cho tôi! –

1

sử dụng dấu nháy kép cho chuỗi như: chr

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

Tôi đã sử dụng (10) trong PHP để gửi một dòng mới như là một phần của thông điệp đẩy, ví dụ.

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

+0

Tính năng này hoạt động đối với tôi trên iOS bằng một Tín hiệu để phân phối cuối cùng. – Mar

0

bạn có thể thử:

alert:"this is 1st line \\n" 
Các vấn đề liên quan