सामग्री पर जाएं

iOS पुश प्राइमर

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

संस्करण 7.1.1 से उपलब्ध है। प्राइमर PushwooshFramework का हिस्सा है; किसी अतिरिक्त मॉड्यूल की आवश्यकता नहीं है।

सिस्टम अनुमति प्रॉम्प्ट से पहले दिखाया गया पुश प्राइमर डायलॉग
iOS सिस्टम अनुमति प्रॉम्प्ट से पहले दिखाया गया पुश प्राइमर

यह कैसे काम करता है

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 का पुन: उपयोग करता है और उस श्रृंखला को डुप्लिकेट नहीं करता है।

संदर्भ

Anchor link to