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

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

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

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

Anchor link to

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

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

Anchor link to

1. फायरबेस क्लाउड मैसेजिंग सेट अप करें

Anchor link to

सबसे पहले, अपने एंड्रॉइड प्रोजेक्ट को फायरबेस से कनेक्ट करें:

  • एंड्रॉइड स्टूडियो में अपना प्रोजेक्ट खोलें
  • Tools > Firebase > Cloud Messaging पर नेविगेट करें और “Set up Firebase Cloud Messaging” पर क्लिक करें
  • विज़ार्ड के निर्देशों का पालन करें। अंतिम स्टेप में, विज़ार्ड आपकी build.gradle फ़ाइलों में आवश्यक डिपेंडेंसी जोड़ देगा

2. Pushwoosh SDK जोड़ें

Anchor link to

अपने एप्लिकेशन के build.gradle में pushwoosh लाइब्रेरी डिपेंडेंसी जोड़ें:

build.gradle
implementation 'com.pushwoosh:pushwoosh-firebase:6.+'

”+” को Pushwoosh Android SDK के वर्तमान संस्करण से बदलें

3. AndroidManifest.xml में Pushwoosh मेटाडेटा जोड़ें

Anchor link to

अपनी AndroidManifest.xml फ़ाइल खोलें और <application> टैग के अंदर निम्नलिखित मेटाडेटा जोड़ें:

<meta-data android:name="com.pushwoosh.appid" android:value="__YOUR_APP_CODE__" />
<meta-data android:name="com.pushwoosh.senderid" android:value="@string/fcm_sender_id" />
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />

जहाँ:

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

com.pushwoosh.senderid सेट करने के लिए, अपने प्रोजेक्ट की res/values/strings.xml फ़ाइल में fcm_sender_id जोड़ें:

res/values/strings.xml
<resources>
<string name="fcm_sender_id">__YOUR_FCM_SENDER_ID__</string>
</resources>

4. इनिशियलाइज़ेशन कोड

Anchor link to

पुश नोटिफिकेशन के लिए रजिस्टर करने के लिए, इस कोड को अपने इनिशियलाइज़ेशन लॉजिक में जोड़ें:

Pushwoosh.getInstance().registerForPushNotifications()

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

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

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

Anchor link to

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

पुश नोटिफिकेशन

Anchor link to

Pushwoosh SDK में, पुश नोटिफिकेशन को संभालने के लिए दो कॉलबैक डिज़ाइन किए गए हैं:

  • onMessageReceived: यह मेथड तब कॉल किया जाता है जब कोई पुश नोटिफिकेशन प्राप्त होता है।
  • onMessageOpened: यह मेथड तब कॉल किया जाता है जब उपयोगकर्ता नोटिफिकेशन के साथ इंटरैक्ट करता है (खोलता है)

ये कॉलबैक डेवलपर्स को अपने एप्लिकेशन के भीतर पुश नोटिफिकेशन की प्राप्ति और उपयोगकर्ता इंटरैक्शन को प्रबंधित करने में सक्षम बनाते हैं:

AndroidManifest.xml
<meta-data
android:name="com.pushwoosh.notification_service_extension"
android:value="com.your.package.YourNotificationServiceExtension" />
import android.util.Log
import com.pushwoosh.notification.NotificationServiceExtension
import com.pushwoosh.notification.PushMessage
class YourNotificationServiceExtension : NotificationServiceExtension() {
override fun onMessageReceived(data: PushMessage): Boolean {
Log.d("Pushwoosh", "onMessageReceived: ${data.toJson()}")
return false
}
override fun onMessageOpened(message: PushMessage) {
Log.d("Pushwoosh", "onMessageOpened: ${message.toJson()}")
}
}

उपयोगकर्ता कॉन्फ़िगरेशन

Anchor link to

व्यक्तिगत उपयोगकर्ता के व्यवहार और वरीयताओं पर ध्यान केंद्रित करके, आप व्यक्तिगत सामग्री प्रदान कर सकते हैं, जिससे उपयोगकर्ता की संतुष्टि और वफादारी में वृद्धि होती है

import com.pushwoosh.Pushwoosh
import com.pushwoosh.tags.TagsBundle
import java.util.Date
class Registration {
public void afterUserLogin(User user) {
Pushwoosh pushwoosh = Pushwoosh.getInstance()
// Set user ID
if (user.getUserId() != null) {
pushwoosh.setUserId(user.getUserId())
}
// Set user email
if (user.getEmail() != null) {
pushwoosh.setEmail(user.getEmail())
}
// Setting additional user information as tags for Pushwoosh
if (user.getUserDetails() != null) {
val details = user.getUserDetails()
val tagsBuilder = TagsBundle.Builder()
if (details.getAge() != null) {
tagsBuilder.putInt("age", details.getAge())
}
if (details.getUserName() != null) {
tagsBuilder.putString("name", details.getUserName())
}
if (details.lastLoginDate() != null) {
tagsBuilder.putDate("last_login", details.getLastLoginDate())
}
// Build and send tags
val tags = tagsBuilder.build()
if (!tags.isEmpty()) {
pushwoosh.setTags(tags)
}
}
}
}

टैग्स

Anchor link to

टैग्स उपयोगकर्ताओं या डिवाइसों को असाइन किए गए की-वैल्यू पेयर होते हैं, जो वरीयताओं या व्यवहार जैसे एट्रिब्यूट्स के आधार पर सेगमेंटेशन की अनुमति देते हैं, जिससे लक्षित मैसेजिंग सक्षम होती है।

import com.pushwoosh.Pushwoosh
import com.pushwoosh.tags.TagsBundle
import java.util.List
class UpdateUser {
public void afterUserUpdateProfile(User user) {
val pushwoosh = Pushwoosh.getInstance()
val tagsBuilder = TagsBundle.Builder()
// Set list of favorite categories
if (user.favoriteCategories != null && user.favoriteCategories.isNotEmpty()) {
tagsBuilder.putList("favorite_categories", user.getFavoriteCategories())
}
// Set payment information
tagsBuilder.putBoolean("is_subscribed", user.isSubscribed())
tagsBuilder.putString("payment_status", user.getPaymentStatus())
tagsBuilder.putString("billing_address", user.getBillingAddress())
// Build and send tags
pushwoosh.setTags(tagsBuilder.build())
}
}

इवेंट्स

Anchor link to

इवेंट्स ऐप के भीतर विशिष्ट उपयोगकर्ता क्रियाएं या घटनाएं होती हैं जिन्हें व्यवहार का विश्लेषण करने और संबंधित संदेशों या क्रियाओं को ट्रिगर करने के लिए ट्रैक किया जा सकता है

import com.pushwoosh.Pushwoosh
import com.pushwoosh.inapp.InAppManager
import com.pushwoosh.tags.TagsBundle
import java.util.Date
class Registration {
public void afterUserLogin(User user) {
if (user.getUserName() != null && user.getLastLoginDate() != null) {
val attributes = TagsBundle.Builder()
.putString("name", user.getUserName())
.putDate("last_login", user.getLastLoginDate())
.build()
InAppManager.getInstance().postEvent("login", attributes)
}
}
public void afterUserPurchase(User user, Product product) {
Pushwoosh pushwoosh = Pushwoosh.getInstance()
// Track purchase event
val purchaseAttributes = TagsBundle.Builder()
.putString("product_id", product.getId())
.putString("product_name", product.getName())
.putDouble("price", product.getPrice())
.putInt("quantity", product.getQuantity())
.build()
InAppManager.getInstance().postEvent("purchase", purchaseAttributes)
// Set user tags
val tagsBuilder = TagsBundle.Builder()
tagsBuilder.putDate("last_purchase_date", Date())
val lifetimeSpend = getCurrentLifetimeSpend() + product.getPrice()
tagsBuilder.putDouble("lifetime_spend", getCurrentLifetimeSpend())
pushwoosh.setTags(tagsBuilder.build())
}
}

रिच मीडिया

Anchor link to

रिच मीडिया इंटरैक्टिव और मल्टीमीडिया सामग्री को संदर्भित करता है, जैसे कि चित्र, वीडियो, या HTML, जिसका उपयोग उपयोगकर्ता की सहभागिता को बढ़ाने के लिए नोटिफिकेशन और इन-ऐप संदेशों में किया जाता है

मोडल रिच मीडिया सुविधा को सक्षम करने के लिए, आपको इसे अपने एप्लिकेशन की AndroidManifest.xml फ़ाइल में निम्नलिखित मेटाडेटा एंट्री जोड़कर कॉन्फ़िगर करना होगा:

AndroidManifest.xml
<meta-data
android:name="com.pushwoosh.rich_media_type"
android:value="Modal" />
import android.util.Log
import com.pushwoosh.richmedia.RichMedia
import com.pushwoosh.richmedia.RichMediaManager
import com.pushwoosh.richmedia.RichMediaPresentingDelegate
import com.pushwoosh.inapp.view.config.ModalRichmediaConfig
import com.pushwoosh.inapp.view.config.enums.*
class MainActivity : AppCompatActivity(), RichMediaPresentingDelegate {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
RichMediaManager.setDelegate(this)
// Configure the modal rich media
val config = ModalRichmediaConfig()
.setViewPosition(ModalRichMediaViewPosition.BOTTOM)
.setPresentAnimationType(ModalRichMediaPresentAnimationType.SLIDE_UP)
.setDismissAnimationType(ModalRichMediaDismissAnimationType.SLIDE_DOWN)
// Apply the configuration
RichMediaManager.setDefaultRichMediaConfig(config)
}
override fun shouldPresent(richMedia: RichMedia): Boolean {
Log.d("Pushwoosh", "Rich media will be presented with: ${richMedia.content}")
return true
}
override fun onPresent(richMedia: RichMedia) {
Log.d("Pushwoosh", "Rich media has been presented: ${richMedia.content}")
}
override fun onClose(richMedia: RichMedia) {
Log.d("Pushwoosh", "Rich media has been closed: ${richMedia.content}")
}
override fun onError(richMedia: RichMedia, pushwooshException: PushwooshException) {
Log.e("Pushwoosh", "Failed to present rich media: ${richMedia.content}. Error: ${pushwooshException.message}")
}
}

समस्या निवारण

Anchor link to

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