2013-05-19 63 views
2

在Worklight中,我爲iOS設置了推送消息,並且工作正常。現在爲了測試目的,當我通過URL調用發送推送時,消息標題正確顯示,而主體(有效內容)部分截斷所有空格並顯示所有單詞。工作燈:推送消息格式

例如:

http://mydomain/myApp/invoke?adapter=aaPushAdapter&procedure=sendPush&parameters=["aahad","General Title 2", "This is General message body 2"] 

然後,標題當屬「總標題2」和身體部位當屬「ThisisGeneralmessagebody2」

我的適配器被聲明爲:

function sendPush(userId, msgTitle, MsgContents){ 
    var userSubscription = WL.Server.getUserNotificationSubscription('aaPushAdapter.PushEventSource', userId); 
    if (userSubscription==null){ 
     return { result: "No subscription found for user :: " + userId }; 
    } 
    WL.Server.notifyAllDevices(userSubscription, { 
     badge: 1, 
     sound: "sound.mp3", 
     activateButtonLabel: "Read", 
     alert: msgTitle, 
     payload: { 
      msg : MsgContents 
     } 
    }); 
    return { result: "Notification sent to user :: " + userId }; 
} 

(1)現在怎麼樣我可以保留這種格式?

(2)如果我必須發送URL,那麼我如何格式化併發送我的消息?

請建議。謝謝

回答

0

如果%20不起作用,則將所有空格更改爲'|',然後在您的應用程序中取消編碼。或者對整個字符串進行十六進制編碼,因此它是一個連續的字母數字字符串。

+0

這看起來是一個很好的解決方法,但它會增加有效負載大小 - 限制我的消息長度。讓我試試這個。謝謝 – AAhad

+0

那麼請嘗試音譯方法。可能任何通常必須用%編碼的字符都是問題,但也許不是,所以你必須進行實驗。祝你好運! –

0

我不完全確定你是如何使用URL作爲發送推送通知的手段。你的意思是你真的去了瀏覽器並在地址欄中輸入這個文本......?你不應該這樣做(除了快速測試)。有後端系統應該爲你做。

無論如何,不​​是單詞之間的空格,而是使用「%20」(帶引號的引號),然後查看文本是否在對話框中顯示爲空格。

+0

嗨,伊丹,我有後端程序準備發送推,但爲了測試目的,我直接使用瀏覽器。我嘗試了放20%,但沒有奏效。這不是因爲瀏覽器刪除空格嗎?謝謝 – AAhad

+0

您也可以右鍵單擊適配器並選擇「調用worklight過程」並通過那裏發送消息。 –

+0

那麼,在開發工作室中,我沒有指定Worklight.properties文件和數據庫設置,所以它在默認的hsql數據庫上運行。所以當發送Push時,它表示用戶沒有訂閱。此外,我無法直接訪問我的開發環境設備上的碼頭服務器,它沒有辦公室允許的WIFI。任何其他解決方法?順便說一下,是否有任何有效負載格式化,或有效負載應該運輸所有輸入,因爲它是? – AAhad