2012-06-28 11 views
19

मेरे पास मेटाडेटा के कई टुकड़े हैं जिन्हें मुझे पुश अधिसूचना के साथ जोड़ना होगा।क्या सेब पुश अधिसूचनाएं अलर्ट और ध्वनि की तुलना में अधिक पैरामीटर भेज सकती हैं?

उदाहरण के लिए उपयोगकर्ता संख्या, संदेश आईडी।

मैं अधिक पैरामीटर भेज सकते हैं की तुलना में क्या सेब का समर्थन करता है:

{aps =  { 
    alert = joetheman; 
    sound = default; 
};} 

यह संभव है?

उत्तर

42

हां। पुश अधिसूचना प्रोग्रामिंग गाइड अनुभाग The Notification Payload में यह

प्रदाता एप्पल-आरक्षित ए पी एस नाम स्थान के बाहर कस्टम पेलोड मान निर्दिष्ट कर सकते कहा गया है। कस्टम मानों को JSON संरचित और आदिम प्रकारों का उपयोग करना चाहिए: शब्दकोश (ऑब्जेक्ट), सरणी, स्ट्रिंग, संख्या, और बूलियन। आपको कस्टम पेलोड डेटा के रूप में ग्राहक जानकारी शामिल नहीं करनी चाहिए। इसके बजाय, संदर्भ (उपयोगकर्ता इंटरफ़ेस के लिए) या आंतरिक मीट्रिक सेट करने जैसे उद्देश्यों के लिए इसका उपयोग करें। उदाहरण के लिए, एक कस्टम पेलोड मान एक त्वरित संदेश क्लाइंट एप्लिकेशन द्वारा उपयोग के लिए एक वार्तालाप पहचानकर्ता हो सकता है या जब प्रदाता अधिसूचना भेजता है तो पहचानने वाला टाइमस्टैम्प हो सकता है। चेतावनी संदेश से जुड़ी कोई भी क्रिया विनाशकारी नहीं होनी चाहिए-उदाहरण के लिए, डिवाइस पर डेटा हटाना।

तो अपने पेलोड की तरह

{ 
    "aps": { 
     "alert": "joetheman", 
     "sound": "default" 
    }, 
    "message": "Some custom message for your app", 
    "id": 1234 
} 

इसके अलावा कि एक ही पृष्ठ पर नीचे लग सकता है कि यह प्रदर्शित करता है उदाहरण के एक नंबर रहे हैं।

+0

क्या यह संभव है कि मैं एक शब्द के अंदर दोनों "संदेश" और "आईडी" को क्लब कर सकूं और फिर इसे भेज सकूं। मुझे उस परिदृश्य में कुछ अजीब मुद्दे का सामना करना पड़ रहा है। – kidsid49

+0

ध्यान दें कि लिंक मैक प्रलेखन को संदर्भित करता है - आईओएस दस्तावेज़ (हालांकि जरूरी नहीं कि अलग) यहां हैं: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html – thomers

+0

आप अपना पेलोड कैसे संपादित कर सकते हैं? – Haring10

6

बेशक। आप सेब पुश अधिसूचना के साथ पेलोड के रूप में कस्टम पैरामीटर भेज सकते हैं। केविन Ballard की तरह कहा कि पेलोड उपरोक्त की तरह दिखता है। लेकिन एक चीज हमेशा याद रखें कि आप पुश अधिसूचना से निपट रहे हैं, एप्पल बाधा अधिसूचनाओं के अनुसार, अधिसूचना पेलोड के लिए अधिकतम आकार 256 बाइट्स है; ऐप्पल पुश अधिसूचना सेवा किसी भी अधिसूचना से इनकार करती है जो इससे अधिक है। इसलिए जब आप अधिसूचना में अधिक डेटा जोड़ने जा रहे हैं तो कृपया इसे अपने विचार में भी लें।

+6

http/2 पर नए एपीएन का उपयोग करने के लिए नई सीमा 2048 – Enigma

+2

है। सीमा 4096 बाइट तक बढ़ी है। https://developer.apple.com/news/?id=12172015b – infiniteloop

+1

नई सीमा 4 केबी है (आईओएस 10) – preetam

3

आपको एपीएस टैग के अंदर कस्टम टैग डालने की अनुमति नहीं है। यहां बताया गया है दस्तावेजों इसके बारे में कहते हैं है:

Providers can specify custom payload values outside the Apple-reserved aps namespace. Custom values must use the JSON structured and primitive types: dictionary (object), array, string, number, and Boolean. 

तो आपके मामले में आप की तरह कुछ करना चाहिए: इसलिए आप इसके लिए की तलाश के साथ अपने कस्टम पेलोड पढ़ सकते हैं

{ 
    "aps": { 
     "alert": "Hello Push", 
     "sound": "default" 
    }, 
    "People": { 
     "Address": "Your address here", 
     "Name": "Your Name here", 
     "Number": "XXXXXXXXXX" 
    } 
} 

की तुलना में मुख्य JSON में महत्वपूर्ण है, बल्कि "एपीएस":

संबंधित मुद्दे