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

माइग्रेशन गाइड

Android SDK 5 से 6 में माइग्रेशन

Anchor link to
  1. अपने प्रोजेक्ट को आधिकारिक दस्तावेज़ीकरण के अनुसार AndroidX में माइग्रेट करें।
  2. यदि आप Firebase Cloud Messaging का उपयोग कर रहे हैं तो ऐप की build.gradle फ़ाइल में एक नया मॉड्यूल जोड़ें।
build.gradle
implementation 'com.pushwoosh:pushwoosh-firebase:+'

जो लोग Amazon का उपयोग करते हैं, और Firebase का उपयोग नहीं करते हैं, उनके लिए कोई बदलाव आवश्यक नहीं है।

Android SDK के पिछले संस्करणों से माइग्रेशन

Anchor link to

Pushwoosh की अधिकांश कक्षाएं और विधियां 5.0 रिलीज़ के बाद से पदावनत (deprecated) हो गईं और उनमें से कुछ विलुप्त हो गईं। PushManager, BasePushMessageReceiver, BaseRegistrationReceiver, SendPushTagsCallback, PushFragment और PushEventListener कक्षाएं अभी भी com.pushwoosh:pushwoosh-deprecated लाइब्रेरी के हिस्से के रूप में उपलब्ध हैं, लेकिन जल्द से जल्द नए API में माइग्रेट करने की अनुशंसा की जाती है।

PushManager

Anchor link to

PushManager में विभिन्न सुविधाओं के लिए विभिन्न विधियाँ शामिल थीं। इन विधियों को अब विभिन्न कक्षाओं और पुस्तकालयों के बीच विभाजित किया गया है:
com.pushwoosh:pushwoosh: Pushwoosh, PushwooshNotificationSettings, PushwooshInApp
com.pushwoosh:pushwoosh-badge: PushwooshBadge
com.pushwoosh:pushwoosh-location: PushwooshLocation
com.pushwoosh:pushwoosh-beacon: PushwooshBeacon

BaseRegistrationReceiver

Anchor link to

BaseRegistrationReceiver का उपयोग पुश पंजीकरण और अपंजीकरण घटनाओं को संभालने के लिए किया जाता था। इस रिसीवर को अब सरल कॉलबैक तंत्र द्वारा प्रतिस्थापित किया गया है:

Pushwoosh.getInstance().registerForPushNotifications(result -> {
if (result.isSuccess()) {
String token = result.getData();
// सफल पंजीकरण को संभालें
}
else {
PushwooshException exception = result.getException();
// पंजीकरण त्रुटि को संभालें
}
});

BasePushMessageReceiver

Anchor link to

BasePushMessageReceiver का उपयोग अग्रभूमि (foreground) में पुश सूचना प्राप्त होने पर iOS सूचना व्यवहार की नकल करने के लिए किया जाता था। यह आने वाली सूचना को रद्द करके और onMessageReceive कॉलबैक को लागू करके प्राप्त किया गया था। यह बोझिल था और एप्लिकेशन के सक्रिय होने पर मैन्युअल पंजीकरण और एप्लिकेशन के पृष्ठभूमि में जाने पर अपंजीकरण की आवश्यकता होती थी।
इस रिसीवर को NotificationServiceExtension द्वारा प्रतिस्थापित किया गया है:

AndroidManifest.xml
<meta-data
android:name="com.pushwoosh.notification_service_extension"
android:value="com.your.package.name.YourNotificationServiceExtension"/>
YourNotificationServiceExtension.java
public class YourNotificationServiceExtension extends NotificationServiceExtension {
@Override
public boolean onMessageReceived(final PushMessage message) {
if (isAppOnForeground()) {
Handler mainHandler = new Handler(getApplicationContext().getMainLooper());
mainHandler.post(() -> {
handlePush(message);
});
// यह इंगित करता है कि सूचना प्रदर्शित नहीं की जानी चाहिए
return true;
}
return false;
}
@Override
protected void startActivityForPushMessage(PushMessage message) {
super.startActivityForPushMessage(message);
handlePush(message);
}
@MainThread
private void handlePush(PushMessage message) {
// TODO: पुश संदेश को संभालें
}
}

इस एक्सटेंशन का उपयोग सूचना आगमन और स्वीकृति घटनाओं को संभालने के लिए भी किया जाता है, इस प्रकार मैन्युअल गतिविधि एकीकरण में उपयोग किए गए सभी बोझिल कोड को प्रतिस्थापित किया जाता है।

PushFragment

Anchor link to

PushFragment गतिविधि जीवनचक्र (Activity lifecycle) से जुड़े जटिल एकीकरण के लिए एक हल्का विकल्प था। लेकिन दूसरी ओर इसके लिए FragmentActivity वंशानुक्रम की आवश्यकता थी और इसने परोक्ष रूप से अधिक जटिल खंड जीवनचक्र (Fragment lifecycle) का उपयोग किया।
PushFragment और PushEventListener को अब Pushwoosh#registerForPushNotifications(Callback) और NotificationServiceExtension द्वारा प्रतिस्थापित किया गया है।

कस्टम पुश ब्रॉडकास्ट रिसीवर (PW_NOTIFICATION_RECEIVER)

Anchor link to

PW_NOTIFICATION_RECEIVER का उपयोग उपयोगकर्ता द्वारा सूचना पर क्लिक करने पर व्यवहार को अनुकूलित करने के लिए किया जाता था। इसने गतिविधि संदर्भ (Activity context) के बाहर सूचनाओं को संभालने और सूचना सामग्री के आधार पर विभिन्न गतिविधियों को खोलने की अनुमति दी। इस एकीकरण ने आंतरिक Pushwoosh SDK API का उपयोग किया जो अब मौजूद नहीं है।
इस रिसीवर को अब पूरी तरह से NotificationServiceExtension द्वारा प्रतिस्थापित किया गया है:

YourNotificationServiceExtension.java
public class YourNotificationServiceExtension extends NotificationServiceExtension {
@Override
protected void startActivityForPushMessage(PushMessage message) {
// super.startActivityForPushMessage() डिफ़ॉल्ट लॉन्चर गतिविधि शुरू करता है
// या ${applicationId}.MESSAGE क्रिया के साथ चिह्नित गतिविधि।
// इस व्यवहार को ओवरराइड करने के लिए बस इसे कॉल न करें।
// super.startActivityForPushMessage(message);
// इसके बजाय अपनी गतिविधि शुरू करें:
Intent launchIntent = new Intent(getApplicationContext(), YourActivity.class);
launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
// (वैकल्पिक) गतिविधि को सूचना डेटा पास करें
launchIntent.putExtra(Pushwoosh.PUSH_RECEIVE_EVENT, message.toJson().toString());
context.startActivity(launchIntent);
}
}

सूचना फैक्टरी

Anchor link to

सूचना फैक्टरी से जुड़े कुछ ब्रेकिंग बदलाव भी थे:

1. AbsNotificationFactory को NotificationFactory से बदल दिया गया
2. AbsNotificationFactory#onPushReceived(PushData) और AbsNotificationFactory#onPushHandle(Activity) विधियों को NotificationServiceExtension वर्ग (onMessageReceived, startActivityForPushMessage) से बदल दिया गया।
3. DefaultNotificationFactory को PushwooshNotificationFactory से बदल दिया गया।
4. PushData को PushMessage से बदल दिया गया।

इन-ऐप संदेश

Anchor link to

1. InAppFacade को PushwooshInApp से बदल दिया गया।
2. निम्नलिखित API के साथ जावास्क्रिप्ट नेटिव इंटरफ़ेस के लिए pushwoosh ऑब्जेक्ट पेश किया गया था:
getHwid(): string - वर्तमान डिवाइस के लिए pushwoosh hwid लौटाता है।
getVersion(): string - वर्तमान pushwoosh SDK संस्करण लौटाता है।
postEvent(event: string, attributes?: object, successCallback?: function, errorCallback?: function) - postEvent अनुरोध भेजता है।
sendTags(tags: object) - वर्तमान डिवाइस से जुड़े टैग भेजें।
getTags(successCallback: function, errorCallback?: function) - वर्तमान डिवाइस से जुड़े टैग लौटाता है।
closeInApp() - इन-ऐप html पेज को बंद करता है।

अपनी प्रतिक्रिया हमारे साथ साझा करें

Anchor link to

आपकी प्रतिक्रिया हमें एक बेहतर अनुभव बनाने में मदद करती है, इसलिए यदि आपको SDK एकीकरण प्रक्रिया के दौरान कोई समस्या आती है तो हम आपसे सुनना पसंद करेंगे। यदि आपको कोई कठिनाई आती है, तो कृपया इस फॉर्म के माध्यम से हमारे साथ अपने विचार साझा करने में संकोच न करें।