বিষয়বস্তুতে যান

মাইগ্রেশন গাইড

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

5.0 রিলিজের পর থেকে বেশিরভাগ Pushwoosh ক্লাস এবং মেথড অবচিত হয়ে গেছে এবং কিছু বিলুপ্ত হয়ে গেছে। 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();
// handle successful registration
}
else {
PushwooshException exception = result.getException();
// handle registration error
}
});

BasePushMessageReceiver

Anchor link to

BasePushMessageReceiver ফোরগ্রাউন্ডে পুশ নোটিফিকেশন পাওয়ার সময় 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);
});
// this indicates that notification should not be displayed
return true;
}
return false;
}
@Override
protected void startActivityForPushMessage(PushMessage message) {
super.startActivityForPushMessage(message);
handlePush(message);
}
@MainThread
private void handlePush(PushMessage message) {
// TODO: handle push message
}
}

এই এক্সটেনশনটি নোটিফিকেশন আগমন এবং গ্রহণ ইভেন্টগুলো পরিচালনা করতেও ব্যবহৃত হয়, যা ম্যানুয়াল অ্যাক্টিভিটি ইন্টিগ্রেশনে ব্যবহৃত সমস্ত জটিল কোড প্রতিস্থাপন করে।

PushFragment

Anchor link to

PushFragment অ্যাক্টিভিটি লাইফসাইকেল জড়িত জটিল ইন্টিগ্রেশনের জন্য একটি হালকা বিকল্প ছিল। কিন্তু অন্যদিকে, এর জন্য FragmentActivity ইনহেরিটেন্স প্রয়োজন ছিল এবং এটি পরোক্ষভাবে আরও জটিল ফ্র্যাগমেন্ট লাইফসাইকেল ব্যবহার করত।
PushFragment এবং PushEventListener এখন Pushwoosh#registerForPushNotifications(Callback) এবং NotificationServiceExtension দ্বারা প্রতিস্থাপিত হয়েছে।

কাস্টম পুশ ব্রডকাস্ট রিসিভার (PW_NOTIFICATION_RECEIVER)

Anchor link to

PW_NOTIFICATION_RECEIVER ব্যবহারকারী যখন নোটিফিকেশনে ক্লিক করে তখন আচরণ কাস্টমাইজ করতে ব্যবহৃত হত। এটি অ্যাক্টিভিটি কনটেক্সটের বাইরে নোটিফিকেশন পরিচালনা করতে এবং নোটিফিকেশনের বিষয়বস্তুর উপর নির্ভর করে বিভিন্ন অ্যাক্টিভিটি খুলতে সাহায্য করত। এই ইন্টিগ্রেশনটি অভ্যন্তরীণ Pushwoosh SDK API ব্যবহার করত যা এখন আর বিদ্যমান নেই।
এই রিসিভারটি এখন সম্পূর্ণরূপে NotificationServiceExtension দ্বারা প্রতিস্থাপিত হয়েছে:

YourNotificationServiceExtension.java
public class YourNotificationServiceExtension extends NotificationServiceExtension {
@Override
protected void startActivityForPushMessage(PushMessage message) {
// super.startActivityForPushMessage() starts default launcher activity
// or activity marked with ${applicationId}.MESSAGE action.
// Simply do not call it to override this behaviour.
// super.startActivityForPushMessage(message);
// start your activity instead:
Intent launchIntent = new Intent(getApplicationContext(), YourActivity.class);
launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
// (Optional) pass notification data to Activity
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. JavaScript নেটিভ ইন্টারফেসের জন্য pushwoosh অবজেক্টটি নিম্নলিখিত API সহ চালু করা হয়েছে:
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 ইন্টিগ্রেশন প্রক্রিয়ার সময় আপনার কোনো সমস্যা হলে আমরা আপনার কাছ থেকে শুনতে চাই। আপনি যদি কোনো অসুবিধার সম্মুখীন হন, তাহলে অনুগ্রহ করে এই ফর্মের মাধ্যমে আমাদের সাথে আপনার মতামত শেয়ার করতে দ্বিধা করবেন না।