Capacitor SDK बेसिक इंटीग्रेशन गाइड
इस सेक्शन में यह जानकारी है कि आप अपने एप्लिकेशन में Pushwoosh Capacitor SDK को कैसे इंटीग्रेट कर सकते हैं।
पूर्वापेक्षाएँ
Anchor link toअपने ऐप में Pushwoosh Capacitor SDK को इंटीग्रेट करने के लिए, आपको निम्नलिखित की आवश्यकता होगी:
इंटीग्रेशन के स्टेप्स
Anchor link to1. Pushwoosh Capacitor SDK डिपेंडेंसी जोड़ें
Anchor link toअपने प्रोजेक्ट में Pushwoosh Capacitor SDK डिपेंडेंसी जोड़ें:
npm install pushwoosh-capacitor-pluginCapacitor कॉन्फ़िगरेशन को सिंक करें:
npx cap sync1.1 iOS पैकेज मैनेजर चुनें
Anchor link tonpx cap sync प्लगइन के iOS हिस्से को उसी पैकेज मैनेजर से इंस्टॉल करता है जिसका उपयोग आपका Capacitor प्रोजेक्ट करता है: Swift Package Manager या CocoaPods। दोनों नेटिव Pushwoosh SDK और Inbox UI का एक ही संस्करण प्रदान करते हैं। Swift Package Manager, Capacitor 7 और Capacitor 8 के साथ सपोर्टेड है।
एक मौजूदा प्रोजेक्ट अपना पैकेज मैनेजर बनाए रखता है: यदि ios/App/CapApp-SPM मौजूद है, तो Capacitor CLI, Swift Package Manager का उपयोग करता है, अन्यथा CocoaPods का। नए iOS प्लेटफ़ॉर्म के लिए:
Capacitor 8 डिफ़ॉल्ट रूप से एक Swift Package Manager प्रोजेक्ट बनाता है:
npx cap add iosइसके बजाय CocoaPods का उपयोग करने के लिए, npx cap add ios --packagemanager CocoaPods चलाएँ।
Capacitor 7 डिफ़ॉल्ट रूप से एक CocoaPods प्रोजेक्ट बनाता है। Swift Package Manager का उपयोग करने के लिए, चलाएँ:
npx cap add ios --packagemanager SPMयह कमांड प्रोजेक्ट बनाता है और फिर pod install चलाने का प्रयास करते समय ENOENT ... Podfile त्रुटि के साथ रुक जाता है। प्रोजेक्ट सही तरीके से बन जाता है। सेटअप को इससे पूरा करें:
npx cap sync iosSwift Package Manager के साथ, Capacitor CLI प्लगइन को ios/App/CapApp-SPM में जोड़ता है, और प्लगइन Pushwoosh iOS SDK और Inbox UI लाता है। Pushwoosh SDK को ऐप में दूसरी बार न जोड़ें, न pod के रूप में और न ही किसी अलग संस्करण वाले पैकेज के रूप में।
2. Capacitor SDK इनिशियलाइज़ेशन
Anchor link toअपनी मुख्य JavaScript फ़ाइल में, Pushwoosh SDK को इम्पोर्ट और इनिशियलाइज़ करें:
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Initialize the SDKPushwoosh.onDeviceReady({ appid: "__YOUR_APP_CODE__"});
// Register for push notificationsPushwoosh.registerDevice() .then(result => { console.log("Push token:", result.pushToken); // Handle successful registration }) .catch(error => { console.error("Failed to register device:", error); // Handle registration error });जहाँ:
__YOUR_APP_CODE__Pushwoosh कंट्रोल पैनल से एप्लिकेशन कोड है।
3. iOS नेटिव सेटअप
Anchor link to3.1 कैपेबिलिटीज़
Anchor link toअपने प्रोजेक्ट में पुश नोटिफिकेशन को सक्षम करने के लिए, आपको कुछ कैपेबिलिटीज़ जोड़ने की आवश्यकता है।
Signing & Capabilities सेक्शन में, निम्नलिखित कैपेबिलिटीज़ जोड़ें:
Push NotificationsBackground Modes। इस कैपेबिलिटी को जोड़ने के बाद,Remote notificationsके लिए बॉक्स को चेक करें।
यदि आप टाइम सेंसिटिव नोटिफिकेशन (iOS 15+) का उपयोग करना चाहते हैं, तो Time Sensitive Notifications कैपेबिलिटी भी जोड़ें।
3.2 Info.plist
Anchor link toअपने ios/App/App/Info.plist में __PUSHWOOSH_DEVICE_API_TOKEN__ की को Pushwoosh डिवाइस API टोकन पर सेट करें:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>3.3 मैसेज डिलीवरी ट्रैकिंग
Anchor link toआपको अपने प्रोजेक्ट में एक नोटिफिकेशन सर्विस एक्सटेंशन टारगेट जोड़ना होगा। यह सटीक डिलीवरी ट्रैकिंग और iOS पर रिच मीडिया जैसी सुविधाओं के लिए आवश्यक है।
एक्सटेंशन टारगेट और उसके भीतर आवश्यक Pushwoosh कोड जोड़ने के लिए नेटिव गाइड के स्टेप्स का पालन करें। अपने पैकेज मैनेजर के अनुसार Pushwoosh SDK को एक्सटेंशन टारगेट में जोड़ें:
-
CocoaPods: नेटिव गाइड के नोटिफिकेशन सर्विस एक्सटेंशन के लिए डिपेंडेंसीज़ (केवल CocoaPods) चरण का पालन करें।
ios/App/Podfileमें, एक्सटेंशन टारगेट में बिना संस्करण केpod 'PushwooshXCFramework'जोड़ें, ताकि यह उसी संस्करण पर रिज़ॉल्व हो जिसका प्लगइन उपयोग करता है, फिरnpx cap sync iosचलाएँ। -
Swift Package Manager: नेटिव गाइड के CocoaPods डिपेंडेंसीज़ चरण को छोड़ दें। Xcode में SDK को स्वयं एक्सटेंशन टारगेट में जोड़ें, क्योंकि टारगेट प्लगइन की डिपेंडेंसीज़ इनहेरिट नहीं करता:
- एक्सटेंशन टारगेट > General > Frameworks and Libraries खोलें।
Pushwoosh-XCFrameworkपैकेज काPushwooshFrameworkप्रोडक्ट जोड़ें।Package.resolvedमें पहले से मौजूद संस्करण का उपयोग करें।
यदि आपने CocoaPods से माइग्रेट किया है, तो सुनिश्चित करें कि एक्सटेंशन अब
PushwooshXCFrameworkको pod के रूप में प्राप्त नहीं करता, ताकि ऐप में SDK दो बार शामिल न हो।
फिर एक्सटेंशन कोड में import PushwooshFramework करें। App टारगेट को कुछ अतिरिक्त नहीं चाहिए, क्योंकि उसे Pushwoosh SDK प्लगइन के माध्यम से मिलता है।
4. Android नेटिव सेटअप
Anchor link to4.1 डिपेंडेंसीज़ इंस्टॉल करें
Anchor link toसुनिश्चित करें कि आवश्यक डिपेंडेंसीज़ और प्लगइन्स आपकी Gradle स्क्रिप्ट्स में जोड़े गए हैं:
अपने प्रोजेक्ट-लेवल build.gradle डिपेंडेंसीज़ में Google Services Gradle प्लगइन जोड़ें:
buildscript { dependencies { classpath 'com.google.gms:google-services:4.3.15' }}अपने ऐप-लेवल build.gradle फ़ाइल में प्लगइन लागू करें:
apply plugin: 'com.google.gms.google-services'4.2 Firebase कॉन्फ़िगरेशन फ़ाइल जोड़ें
Anchor link togoogle-services.json फ़ाइल को अपने प्रोजेक्ट डायरेक्टरी में android/app फ़ोल्डर में रखें।
4.3 Pushwoosh मेटाडेटा जोड़ें
Anchor link toअपने main/AndroidManifest.xml में <application> टैग के अंदर Pushwoosh डिवाइस API टोकन जोड़ें:
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />महत्वपूर्ण: सुनिश्चित करें कि आप अपने Pushwoosh कंट्रोल पैनल में टोकन को सही ऐप का एक्सेस दें। और जानें
5. प्रोजेक्ट चलाएँ
Anchor link to- प्रोजेक्ट को बिल्ड और रन करें।
- Pushwoosh कंट्रोल पैनल पर जाएँ और एक पुश नोटिफिकेशन भेजें।
- आपको ऐप में नोटिफिकेशन दिखना चाहिए।
विस्तारित इंटीग्रेशन
Anchor link toइस स्तर पर, आपने पहले ही SDK को इंटीग्रेट कर लिया है और पुश नोटिफिकेशन भेज और प्राप्त कर सकते हैं। अब, आइए मुख्य कार्यक्षमता का पता लगाएं।
पुश नोटिफिकेशन इवेंट लिसनर्स
Anchor link toPushwoosh Capacitor SDK में पुश नोटिफिकेशन को हैंडल करने के लिए दो कॉलबैक मेथड हैं:
pushReceivedCallbackतब ट्रिगर होता है जब एक पुश नोटिफिकेशन प्राप्त होता हैpushOpenedCallbackतब ट्रिगर होता है जब कोई यूज़र नोटिफिकेशन खोलता है
आपको SDK के इनिशियलाइज़ेशन के ठीक बाद इन कॉलबैक को सेटअप करना चाहिए:
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Set up push received callbackawait Pushwoosh.pushReceivedCallback((notification, err) => { if (err) { console.error("Failed to process received notification:", err); } else { console.log("Push received:", JSON.stringify(notification)); // Handle the received notification }});
// Set up push opened callbackawait Pushwoosh.pushOpenedCallback((notification, err) => { if (err) { console.error("Failed to process opened notification:", err); } else { console.log("Push opened:", JSON.stringify(notification)); // Handle the opened notification }});यूज़र कॉन्फ़िगरेशन
Anchor link toव्यक्तिगत यूज़र के व्यवहार और प्राथमिकताओं पर ध्यान केंद्रित करके, आप व्यक्तिगत कंटेंट प्रदान कर सकते हैं, जिससे यूज़र की संतुष्टि और वफादारी बढ़ती है।
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration { async afterUserLogin(user) {
// Set user ID Pushwoosh.setUserId(user.getId);
// Setting additional user information as tags for Pushwoosh await Pushwoosh.setTags({ "age": user.getAge(), "name": user.getName(), "last_login": user.getLastLoginDate() }); }}टैग्स
Anchor link toटैग्स यूज़र्स या डिवाइस को असाइन किए गए की-वैल्यू पेयर होते हैं, जो प्राथमिकताओं या व्यवहार जैसे एट्रिब्यूट्स के आधार पर सेगमेंटेशन की अनुमति देते हैं, जिससे लक्षित मैसेजिंग सक्षम होती है।
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class UpdateUser { async afterUserUpdateProfile(user) {
// Set list of favorite categories await Pushwoosh.setTags({ "favorite_categories": user.getFavoriteCategoriesList() });
// Set payment information await Pushwoosh.setTags({ "is_subscribed": user.isSubscribed(), "payment_status": user.getPaymentStatus(), "billing_address": user.getBillingAddress() }); }}इवेंट्स
Anchor link toइवेंट्स ऐप के भीतर विशिष्ट यूज़र एक्शन या घटनाएँ हैं जिन्हें व्यवहार का विश्लेषण करने और संबंधित मैसेज या एक्शन को ट्रिगर करने के लिए ट्रैक किया जा सकता है।
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration {
// Track login event afterUserLogin(user) { Pushwoosh.postEvent("login", { "name": user.getName(), "last_login": user.getLastLoginDate() }); }
// Track purchase event afterUserPurchase(product) { Pushwoosh.postEvent("purchase", { "product_id": product.getId(), "product_name": product.getName(), "price": product.getPrice(), "quantity": product.getQuantity() }); }}समस्या निवारण
Anchor link toयदि कोई पुश डिलीवर नहीं होता है, तो अपने प्लेटफ़ॉर्म का त्रुटि कोड भेजने में त्रुटियाँ में खोजें, ताकि आप जान सकें कि उसका क्या अर्थ है और उसे कैसे ठीक करें।
यदि आपको इंटीग्रेशन प्रक्रिया के दौरान कोई समस्या आती है, तो कृपया सपोर्ट और कम्युनिटी सेक्शन देखें।