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

Capacitor SDK बेसिक इंटीग्रेशन गाइड

इस सेक्शन में यह जानकारी है कि आप अपने एप्लिकेशन में Pushwoosh Capacitor SDK को कैसे इंटीग्रेट कर सकते हैं।

पूर्वापेक्षाएँ

Anchor link to

अपने ऐप में Pushwoosh Capacitor SDK को इंटीग्रेट करने के लिए, आपको निम्नलिखित की आवश्यकता होगी:

इंटीग्रेशन के स्टेप्स

Anchor link to

1. Pushwoosh Capacitor SDK डिपेंडेंसी जोड़ें

Anchor link to

अपने प्रोजेक्ट में Pushwoosh Capacitor SDK डिपेंडेंसी जोड़ें:

Terminal window
npm install pushwoosh-capacitor-plugin

Capacitor कॉन्फ़िगरेशन को सिंक करें:

Terminal window
npx cap sync

1.1 iOS पैकेज मैनेजर चुनें

Anchor link to

npx 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 प्रोजेक्ट बनाता है:

Terminal window
npx cap add ios

इसके बजाय CocoaPods का उपयोग करने के लिए, npx cap add ios --packagemanager CocoaPods चलाएँ।

Swift 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 को इम्पोर्ट और इनिशियलाइज़ करें:

index.js
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Initialize the SDK
Pushwoosh.onDeviceReady({
appid: "__YOUR_APP_CODE__"
});
// Register for push notifications
Pushwoosh.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 to

3.1 कैपेबिलिटीज़

Anchor link to

अपने प्रोजेक्ट में पुश नोटिफिकेशन को सक्षम करने के लिए, आपको कुछ कैपेबिलिटीज़ जोड़ने की आवश्यकता है।

Signing & Capabilities सेक्शन में, निम्नलिखित कैपेबिलिटीज़ जोड़ें:

  • Push Notifications
  • Background 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 टोकन पर सेट करें:

info.plist
<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 को स्वयं एक्सटेंशन टारगेट में जोड़ें, क्योंकि टारगेट प्लगइन की डिपेंडेंसीज़ इनहेरिट नहीं करता:

    1. एक्सटेंशन टारगेट > General > Frameworks and Libraries खोलें।
    2. Pushwoosh-XCFramework पैकेज का PushwooshFramework प्रोडक्ट जोड़ें। Package.resolved में पहले से मौजूद संस्करण का उपयोग करें।

    यदि आपने CocoaPods से माइग्रेट किया है, तो सुनिश्चित करें कि एक्सटेंशन अब PushwooshXCFramework को pod के रूप में प्राप्त नहीं करता, ताकि ऐप में SDK दो बार शामिल न हो।

फिर एक्सटेंशन कोड में import PushwooshFramework करें। App टारगेट को कुछ अतिरिक्त नहीं चाहिए, क्योंकि उसे Pushwoosh SDK प्लगइन के माध्यम से मिलता है।

4. Android नेटिव सेटअप

Anchor link to

4.1 डिपेंडेंसीज़ इंस्टॉल करें

Anchor link to

सुनिश्चित करें कि आवश्यक डिपेंडेंसीज़ और प्लगइन्स आपकी Gradle स्क्रिप्ट्स में जोड़े गए हैं:

अपने प्रोजेक्ट-लेवल build.gradle डिपेंडेंसीज़ में Google Services Gradle प्लगइन जोड़ें:

android/build.gradle
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
}

अपने ऐप-लेवल build.gradle फ़ाइल में प्लगइन लागू करें:

app/build.gradle
apply plugin: 'com.google.gms.google-services'

4.2 Firebase कॉन्फ़िगरेशन फ़ाइल जोड़ें

Anchor link to

google-services.json फ़ाइल को अपने प्रोजेक्ट डायरेक्टरी में android/app फ़ोल्डर में रखें।

4.3 Pushwoosh मेटाडेटा जोड़ें

Anchor link to

अपने main/AndroidManifest.xml में <application> टैग के अंदर Pushwoosh डिवाइस API टोकन जोड़ें:

AndroidManifest.xml
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />

महत्वपूर्ण: सुनिश्चित करें कि आप अपने Pushwoosh कंट्रोल पैनल में टोकन को सही ऐप का एक्सेस दें। और जानें

5. प्रोजेक्ट चलाएँ

Anchor link to
  1. प्रोजेक्ट को बिल्ड और रन करें।
  2. Pushwoosh कंट्रोल पैनल पर जाएँ और एक पुश नोटिफिकेशन भेजें।
  3. आपको ऐप में नोटिफिकेशन दिखना चाहिए।

विस्तारित इंटीग्रेशन

Anchor link to

इस स्तर पर, आपने पहले ही SDK को इंटीग्रेट कर लिया है और पुश नोटिफिकेशन भेज और प्राप्त कर सकते हैं। अब, आइए मुख्य कार्यक्षमता का पता लगाएं।

पुश नोटिफिकेशन इवेंट लिसनर्स

Anchor link to

Pushwoosh Capacitor SDK में पुश नोटिफिकेशन को हैंडल करने के लिए दो कॉलबैक मेथड हैं:

  • pushReceivedCallback तब ट्रिगर होता है जब एक पुश नोटिफिकेशन प्राप्त होता है
  • pushOpenedCallback तब ट्रिगर होता है जब कोई यूज़र नोटिफिकेशन खोलता है

आपको SDK के इनिशियलाइज़ेशन के ठीक बाद इन कॉलबैक को सेटअप करना चाहिए:

index.js
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Set up push received callback
await 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 callback
await 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

यदि कोई पुश डिलीवर नहीं होता है, तो अपने प्लेटफ़ॉर्म का त्रुटि कोड भेजने में त्रुटियाँ में खोजें, ताकि आप जान सकें कि उसका क्या अर्थ है और उसे कैसे ठीक करें।

यदि आपको इंटीग्रेशन प्रक्रिया के दौरान कोई समस्या आती है, तो कृपया सपोर्ट और कम्युनिटी सेक्शन देखें।