iOS पुश प्राइमर
एक पुश प्राइमर एक सॉफ्ट ऑप्ट-इन डायलॉग है जिसे आप iOS सिस्टम पुश अनुमति प्रॉम्प्ट से पहले दिखाते हैं। iOS सिस्टम प्रॉम्प्ट को प्रति इंस्टॉल केवल एक बार दिखाता है — यदि उपयोगकर्ता अनुमति न दें पर टैप करता है, तो पुश तब तक खो जाता है जब तक वे इसे सेटिंग्स में फिर से सक्षम नहीं करते। प्राइमर आपको पहले मूल्य समझाने और सही समय पर पूछने की सुविधा देता है, ताकि आप एक-शॉट सिस्टम प्रॉम्प्ट उन उपयोगकर्ताओं पर खर्च करें जिन्होंने पहले ही हाँ कह दिया है।
संस्करण 7.1.1 से उपलब्ध है। प्राइमर PushwooshFramework का हिस्सा है; किसी अतिरिक्त मॉड्यूल की आवश्यकता नहीं है।

यह कैसे काम करता है
Anchor link toप्राइमर पूरी तरह से स्थिति-जागरूक है। यह वर्तमान नोटिफिकेशन प्राधिकरण स्थिति को पढ़ता है और तय करता है कि क्या करना है, इसलिए इसे हर लॉन्च पर कॉल करना सुरक्षित है:
- निर्धारित नहीं — प्राइमर दिखाता है; स्वीकार करने पर यह सिस्टम अनुमति प्रॉम्प्ट को ट्रिगर करता है।
- अधिकृत या अनंतिम — चुपचाप प्राइमर को दबा देता है (कुछ भी नहीं दिखाया जाता है)।
- अस्वीकृत — प्राइमर दिखाता है; स्वीकार करने पर यह उपयोगकर्ता को ऐप की नोटिफिकेशन सेटिंग्स पर भेजता है (जब
fallbackToSettingsसक्षम होता है)।
आप तय करते हैं कि प्राइमर को कब कॉल करना है (उदाहरण के लिए ऑनबोर्डिंग के बाद या किसी महत्वपूर्ण कार्रवाई के बाद)। SDK अपनी कोई टाइमिंग नहीं लगाता है, सिवाय नीचे वर्णित वैकल्पिक minInterval थ्रॉटल के।
मूल उपयोग
Anchor link toप्राइमर को एक फ़्लूएंट बिल्डर के साथ कॉन्फ़िगर करें और present को कॉल करें। न्यूनतम सेटअप के लिए एक शीर्षक, एक संदेश और दो बटन शीर्षकों की आवश्यकता होती है।
import PushwooshFramework
Pushwoosh.configure.pushPrimer .title("Stay in the loop") .message("Get notified about deals and order updates first") .acceptButton("Enable notifications") .declineButton("Not now") .present()शैलियाँ और स्थितियाँ
Anchor link toएक सिस्टम अलर्ट और एक कस्टम शीट के बीच चयन करने के लिए style का उपयोग करें, और कस्टम शीट को रखने के लिए position का उपयोग करें। प्रत्येक स्थिति का अपना डिफ़ॉल्ट डिज़ाइन होता है।
| मान | विवरण |
|---|---|
.alert | सिस्टम UIAlertController। स्थिति को अनदेखा किया जाता है। |
.sheet + .bottom | बॉटम शीट जो ऊपर स्लाइड होती है, जिसमें एक ग्रैबर और पूरी-चौड़ाई वाले बटन होते हैं (डिफ़ॉल्ट)। |
.sheet + .top | कॉम्पैक्ट बैनर जो ऊपर से गिरता है, एक नोटिफिकेशन की तरह। |
.sheet + .center | केंद्रित डायलॉग जो स्केल और फेड इन होता है। |
Pushwoosh.configure.pushPrimer .style(.sheet) .position(.top) .title("Stay in the loop") .message("Get notified about deals and order updates first") .acceptButton("Enable notifications") .declineButton("Not now") .present()
अनुकूलन
Anchor link toसभी विज़ुअल सेटिंग्स वैकल्पिक हैं — उन्हें लाइट और डार्क मोड के अनुकूल होने वाले नेटिव डिफ़ॉल्ट का उपयोग करने के लिए छोड़ दें।
Pushwoosh.configure.pushPrimer .style(.sheet) .position(.center) .title("Stay in the loop") .message("Get notified about deals and order updates first") .acceptButton("Enable notifications") .declineButton("Not now") .image(UIImage(named: "PrimerHero")) // local image, or .imageURL("https://…") .backgroundColor(.systemBackground) .titleColor(.label) .messageColor(.secondaryLabel) .acceptButtonColor(.systemBlue) .acceptButtonTextColor(.white) .declineButtonColor(.clear) .declineButtonTextColor(.secondaryLabel) .cornerRadius(24) .buttonCornerRadius(14) .buttonBorderColor(.separator) .present()अनुकूलन संदर्भ:
| सेटर | विवरण |
|---|---|
image / imageURL | एक स्थानीय UIImage या एक रिमोट URL। केंद्र और नीचे के लेआउट पर एक वृत्त के रूप में और शीर्ष बैनर पर आइकन के रूप में प्रस्तुत किया गया। एक स्थानीय छवि URL पर प्राथमिकता लेती है। |
backgroundColor | कार्ड का ठोस पृष्ठभूमि रंग। |
backgroundGradient | रंगों की एक सरणी जो एक नरम बहु-रंग ग्रेडिएंट के रूप में प्रस्तुत की जाती है। backgroundColor को ओवरराइड करती है। |
titleColor / messageColor | शीर्षक और संदेश टेक्स्ट के रंग। |
acceptButtonColor / acceptButtonTextColor | स्वीकार बटन की पृष्ठभूमि और टेक्स्ट के रंग। स्वीकार रंग डिफ़ॉल्ट आइकन को भी टिंट करता है। |
declineButtonColor / declineButtonTextColor | अस्वीकार बटन की पृष्ठभूमि और टेक्स्ट के रंग। |
cornerRadius | कार्ड का कॉर्नर रेडियस। |
buttonCornerRadius / buttonBorderColor | दोनों बटनों का कॉर्नर रेडियस और बॉर्डर का रंग। |
व्यवहार सेटिंग्स
Anchor link toसेटिंग्स फ़ॉलबैक
Anchor link toडिफ़ॉल्ट रूप से, जब नोटिफिकेशन पहले से ही अस्वीकृत होते हैं तो प्राइमर दिखाया जाता है और स्वीकार बटन उपयोगकर्ता को ऐप की नोटिफिकेशन सेटिंग्स पर ले जाता है। इसके बजाय अस्वीकृत स्थिति में प्राइमर को पूरी तरह से दबाने के लिए false पास करें।
.fallbackToSettings(false)प्रदर्शन आवृत्ति
Anchor link toडिफ़ॉल्ट रूप से प्राइमर में कोई अंतर्निहित थ्रॉटलिंग नहीं होती है — यह जब भी आप present को कॉल करते हैं तो दिखाई देता है (और नोटिफिकेशन अधिकृत होने के बाद स्वतः-दबा दिया जाता है)। प्राइमर कितनी बार फिर से दिखाई देता है, इसे सीमित करने के लिए minInterval का उपयोग करें। अंतिम बार दिखाया गया समय लॉन्च के दौरान बना रहता है।
.minInterval(7 * 24 * 60 * 60) // show at most once a weekपरिणाम को संभालना
Anchor link toपरिणाम पर प्रतिक्रिया करने के लिए present को एक समापन पास करें।
Pushwoosh.configure.pushPrimer .title("Stay in the loop") .message("Get notified about deals and order updates first") .acceptButton("Enable notifications") .declineButton("Not now") .present { outcome in switch outcome { case .accepted: break // दिखाया गया, उपयोगकर्ता ने स्वीकार किया, सिस्टम प्रॉम्प्ट का अनुरोध किया गया case .declined: break // दिखाया गया, उपयोगकर्ता ने अस्वीकार कर दिया case .suppressed: break // नहीं दिखाया गया (पहले से अधिकृत, या थ्रॉटल किया गया) case .redirectedToSettings: break // अस्वीकृत स्थिति, उपयोगकर्ता को सेटिंग्स में भेजा गया @unknown default: break } }अंतिम सिस्टम-प्रॉम्प्ट परिणाम (अनुदानित/अस्वीकृत स्थिति और डिवाइस टोकन) नियमित पंजीकरण कॉलबैक के माध्यम से आता है — प्राइमर स्वीकार करने पर registerForPushNotifications का पुन: उपयोग करता है और उस श्रृंखला को डुप्लिकेट नहीं करता है।