2013-02-12 78 views
1

我發現這篇文章對於設置有幫助,但我還沒有看到推送通知在iPhone上安裝了通行證。推送通知到Passbook通過Urban Airship沒有出現在設備上

Passkit-push-notification-not-working-with-urban-airship

設置我的城市飛艇的網站推​​到蘋果公司的開發服務器應用程序。我安裝我的電話一通,然後運行它在我上面的帖子中發現以下命令:

airship = urbanairship.Airship(_UrbanAirshipPassbookKey, _UrbanAirshipPassbookMasterSecret) 
airship.push({'aps': {'alert': 'Go.'}}, device_tokens=tokens) 

然後我看到這個推在Xcode的iPhone的控制檯窗口的確認。

Received push for topic pass.xxx.xxx: { 
    ... 
    aps = { 
     banner = "Hello"; 
    }; 

然後iPhone將其更新標記及其傳遞類型ID和設備庫ID發送到Web服務。此時,Web服務應該發回已更改通行證的列表。但是,我反而看到以下錯誤消息:

<Warning>: Web service error for pass.mypasstype.id (http://192.168.30.209:8000): Response to 'What changed?' request included 1 serial numbers but the lastUpdated tag (2013-02-11T17:25:25) remained the same. 

有沒有人知道爲什麼會發生這種情況?我是否需要實際修改傳遞中的字段以使推送通知出現在設備上?

+0

我通過手動將lastUpdated標籤手動設置爲昨天來解決這個問題。不理想,但我會繼續尋找更優雅的解決方案。 – user1420913 2013-02-12 19:53:17

+0

即時通訊有相同的問題,你可以幫我嗎? – 2017-07-14 14:06:29

回答

2

您的問題的簡短答案是肯定的,您需要修改傳遞中的字段以獲取推送通知以顯示。這是因爲,與應用程序推送不同,Passbook推送有效內容不會確定通知的內容。

Passbook推送消息的目的是提醒設備Web服務具有更新內容的新傳遞。警報文本完全由新的通行證內容決定。推送有效內容中的任何內容都將被忽略。 Apple建議a push notification with an empty JSON dictionary

一旦推送到時,會觸發下列鏈:

  • 設備接收推式和查詢Web服務與passTypeIdentifierlastUpadted標籤爲所有對經過
  • Web服務提供連續的列表passTypeIdentifier因爲lastUpdated標籤
  • 設備接收串行已經改變(S)和請求Web服務發送新.pkpass束爲每個新通
  • Web服務發送新.pkpass捆綁
  • 裝置接收.pkpass束,並且檢查對舊通更改
  • 如果滿足下列條件,設備將顯示在changeMessage鍵提供的通知:
    • 的值已更改
    • changeMessage包含%@串

1d中的%@串不存在時,通將呈通知符請致電Pass Changed。如果沒有changeMessage鍵存在更改值,則不顯示任何消息。

相關問題