Flutter SDK বেসিক ইন্টিগ্রেশন গাইড
এই বিভাগে আপনার অ্যাপ্লিকেশনে Pushwoosh Flutter SDK কীভাবে ইন্টিগ্রেট করতে হয় সে সম্পর্কে তথ্য রয়েছে।
পূর্বশর্ত
Anchor link toআপনার অ্যাপে Pushwoosh Flutter SDK ইন্টিগ্রেট করার জন্য, আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:
ইন্টিগ্রেশন ধাপ
Anchor link to১. Pushwoosh Flutter SDK ডিপেন্ডেন্সি যোগ করুন
Anchor link toআপনার pubspec.yaml ফাইলে pushwoosh_flutter প্যাকেজটি যোগ করুন:
dependencies: flutter: sdk: flutter # https://pub.dev/packages/pushwoosh_flutter থেকে সর্বশেষ সংস্করণ ব্যবহার করুন pushwoosh_flutter: ^[LATEST_VERSION]pub.dev-এ সর্বশেষ সংস্করণ দেখুন।
তারপর, ডিপেন্ডেন্সি ইনস্টল করার জন্য আপনার প্রজেক্টের রুট ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালান:
flutter pub getপ্যাকেজটি সঠিকভাবে ইনস্টল হয়েছে কিনা তা দুবার পরীক্ষা করুন:
flutter pub deps | grep pushwoosh_flutter
# Example output:# ❯ flutter pub deps | grep pushwoosh_flutter# └── pushwoosh_flutter 2.3.11২. Flutter SDK ইনিশিয়ালাইজেশন
Anchor link toআপনার main.dart ফাইলের রুট কম্পোনেন্টে:
pushwoosh_flutterপ্যাকেজটি ইম্পোর্ট করুন।- Pushwoosh SDK ইনিশিয়ালাইজ করুন।
- পুশ নোটিফিকেশনের জন্য রেজিস্টার করতে আপনার ইনিশিয়ালাইজেশন লজিকে
registerForPushNotifications()কল করুন।
import 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
void main() async { runApp(const MyApp()); Pushwoosh.initialize({ "app_id": "__YOUR_APP_ID__", "sender_id": "__YOUR_FCM_SENDER_ID__" }); Pushwoosh.getInstance.registerForPushNotifications();}যেখানে:
__YOUR_APP_ID__হল Pushwoosh কন্ট্রোল প্যানেল থেকে অ্যাপ্লিকেশন কোড।__YOUR_FCM_SENDER_ID__হল Firebase কনসোল থেকে Firebase প্রজেক্ট নম্বর।
৩. iOS নেটিভ সেটআপ
Anchor link to৩.১ Capabilities
Anchor link toআপনার প্রজেক্টে পুশ নোটিফিকেশন সক্রিয় করতে, আপনাকে নির্দিষ্ট কিছু capabilities যোগ করতে হবে।
Signing & Capabilities বিভাগে, নিম্নলিখিত capabilities যোগ করুন:
Push NotificationsBackground Modes। এই capability যোগ করার পরে,Remote notifications-এর জন্য বক্সটি চেক করুন।
আপনি যদি Time Sensitive Notifications (iOS 15+) ব্যবহার করতে চান, তাহলে Time Sensitive Notifications capability-টিও যোগ করুন।
৩.২ Info.plist
Anchor link toআপনার Runner/Info.plist-এ __PUSHWOOSH_DEVICE_API_TOKEN__ কী-টি Pushwoosh Device API Token-এ সেট করুন:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>৩.৩ মেসেজ ডেলিভারি ট্র্যাকিং
Anchor link toআপনাকে অবশ্যই আপনার প্রজেক্টে একটি Notification Service Extension টার্গেট যোগ করতে হবে। এটি সঠিক ডেলিভারি ট্র্যাকিং এবং iOS-এ রিচ মিডিয়ার মতো বৈশিষ্ট্যগুলির জন্য অপরিহার্য।
এক্সটেনশন টার্গেট এবং এর মধ্যে প্রয়োজনীয় Pushwoosh কোড যোগ করতে নেটিভ গাইডের ধাপগুলি অনুসরণ করুন।
আপনার Flutter প্রজেক্টে Notification Service Extension সঠিকভাবে ইন্টিগ্রেটেড হয়েছে তা নিশ্চিত করতে, আপনাকে নিম্নলিখিত Podfile কনফিগারেশন ব্যবহার করতে হবে:
target 'NotificationServiceExtension' do use_frameworks! use_modular_headers!
pod 'PushwooshXCFramework'
inherit! :search_pathsend৩.৪ iOS Flutter প্রজেক্টের জন্য ডিপেন্ডেন্সি ইনস্টল করা
Anchor link toiOS Flutter প্রজেক্টের জন্য ডিপেন্ডেন্সি ইনস্টল করতে, নিম্নলিখিত কমান্ডটি চালান:
flutter runঅথবা টার্মিনালে ios ফোল্ডারে নেভিগেট করুন এবং চালান:
pod install --repo-update৪. Android নেটিভ সেটআপ
Anchor link to৪.১ ডিপেন্ডেন্সি ইনস্টল করুন
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'৪.২ Firebase কনফিগারেশন ফাইল যোগ করুন
Anchor link toআপনার প্রজেক্ট ডিরেক্টরিতে android/app ফোল্ডারের মধ্যে google-services.json ফাইলটি রাখুন।
৪.৩ Pushwoosh মেটাডেটা যোগ করুন
Anchor link toআপনার main/AndroidManifest.xml-এ <application> ট্যাগের ভিতরে Pushwoosh Device API Token যোগ করুন:
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />গুরুত্বপূর্ণ: আপনার Pushwoosh কন্ট্রোল প্যানেলে সঠিক অ্যাপে টোকেন অ্যাক্সেস দিতে ভুলবেন না। আরও জানুন
৫. প্রজেক্টটি চালান
Anchor link to১. প্রজেক্টটি বিল্ড করুন এবং চালান। ২. Pushwoosh কন্ট্রোল প্যানেলে যান এবং একটি পুশ নোটিফিকেশন পাঠান। ৩. আপনার অ্যাপে নোটিফিকেশনটি দেখতে পাওয়া উচিত।
বর্ধিত ইন্টিগ্রেশন
Anchor link toএই পর্যায়ে, আপনি ইতিমধ্যে SDK ইন্টিগ্রেট করেছেন এবং পুশ নোটিফিকেশন পাঠাতে ও গ্রহণ করতে পারেন। এখন, আসুন মূল কার্যকারিতা অন্বেষণ করি।
পুশ নোটিফিকেশন ইভেন্ট লিসেনার
Anchor link toPushwoosh SDK-তে পুশ নোটিফিকেশন পরিচালনার জন্য ডিজাইন করা দুটি ইভেন্ট লিসেনার রয়েছে:
onPushReceivedইভেন্টটি ট্রিগার হয়, যখন একটি পুশ নোটিফিকেশন গৃহীত হয়onPushAcceptedইভেন্টটি ট্রিগার হয়, যখন একজন ব্যবহারকারী একটি নোটিফিকেশন খোলেন
অ্যাপ্লিকেশন শুরু হওয়ার সময় SDK-এর ইনিশিয়ালাইজেশনের ঠিক পরেই আপনার এই ইভেন্ট লিসেনারগুলি সেট আপ করা উচিত:
import 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
class PushwooshNotificationHandler { void setupPushListeners(Pushwoosh pushwoosh) {
pushwoosh.onPushReceived.listen((event) { print("Push received: ${event.pushwooshMessage.payload}"); });
pushwoosh.onPushAccepted.listen((event) { print("Push accepted: ${event.pushwooshMessage.payload}"); });
}}ব্যবহারকারী কনফিগারেশন
Anchor link toব্যক্তিগত ব্যবহারকারীর আচরণ এবং পছন্দের উপর মনোযোগ দিয়ে, আপনি ব্যক্তিগতকৃত সামগ্রী সরবরাহ করতে পারেন, যা ব্যবহারকারীর সন্তুষ্টি এবং আনুগত্য বৃদ্ধি করে।
import 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
class Registration { void afterUserLogin(User user) {
// ব্যবহারকারীর আইডি সেট করুন Pushwoosh().setUserId(user.getId());
// ব্যবহারকারীর ইমেল সেট করুন Pushwoosh().setEmail(user.getEmail());
// SMS নম্বর রেজিস্টার করুন // SMS এবং WhatsApp নম্বরগুলি অবশ্যই E.164 ফরম্যাটে (যেমন, "+1234567890") এবং বৈধ হতে হবে Pushwoosh().registerSmsNumber(user.getSmsNumber());
// WhatsApp নম্বর রেজিস্টার করুন Pushwoosh().registerWhatsappNumber(user.getWhatsappNumber());
// Pushwoosh-এর জন্য ট্যাগ হিসাবে অতিরিক্ত ব্যবহারকারীর তথ্য সেট করা Pushwoosh().setTags({ "age": user.getAge(), "name": user.getName(), "last_login": user.getLastLoginDate() }); }}ট্যাগ
Anchor link toট্যাগ হল ব্যবহারকারী বা ডিভাইসে নির্ধারিত কী-ভ্যালু পেয়ার, যা পছন্দ বা আচরণের মতো অ্যাট্রিবিউটের উপর ভিত্তি করে সেগমেন্টেশন করার অনুমতি দেয়, যা টার্গেটেড মেসেজিং সক্ষম করে।
import 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
class UpdateUser { void afterUserUpdateProfile(User user) {
// প্রিয় ক্যাটাগরির তালিকা সেট করুন Pushwoosh().setTags({ "favorite_categories": user.getFavoriteCategoriesList() });
// পেমেন্টের তথ্য সেট করুন Pushwoosh().setTags({ "is_subscribed": user.isSubscribed(), "payment_status": user.getPaymentStatus(), "billing_address": user.getBillingAddress() }); }}ইভেন্ট
Anchor link toইভেন্ট হল অ্যাপের মধ্যে নির্দিষ্ট ব্যবহারকারীর ক্রিয়া বা ঘটনা যা আচরণ বিশ্লেষণ করতে এবং সংশ্লিষ্ট বার্তা বা ক্রিয়া ট্রিগার করতে ট্র্যাক করা যেতে পারে।
import 'package:pushwoosh_flutter/pushwoosh_flutter.dart';
class Registration {
// লগইন ইভেন্ট ট্র্যাক করুন void afterUserLogin(User user) { Pushwoosh().postEvent("login", { "name": user.getName(), "last_login": user.getLastLoginDate() }); }
void afterUserPurchase(Product product) {
// ক্রয় ইভেন্ট ট্র্যাক করুন Pushwoosh().postEvent("purchase", { "product_id": product.getId(), "product_name": product.getName(), "price": product.getPrice(), "quantity": product.getQuantity() }); }}ProGuard ব্যবহার
Anchor link toসুতরাং, আপনি এই ব্যতিক্রমটি পেতে পারেন:
java.lang.IllegalStateException: Could not find class for name: com.pushwoosh.plugin.PushwooshNotificationServiceExtensionএই ক্ষেত্রে দুটি সমাধান আছে:
১. অবফাসকেশন ছাড়াই আপনার কোড কম্পাইল করতে flutter build apk --no-shrink কমান্ডটি ব্যবহার করুন।
২. অথবা আপনি ম্যানুয়ালি ProGuard সক্রিয় করতে পারেন এবং প্রয়োজনীয় নিয়ম যোগ করতে পারেন।
আপনার প্রজেক্টের জন্য ProGuard সক্রিয় করতে, আপনার build.gradle ফাইলে নিম্নলিখিত স্ট্রিংগুলি যোগ করুন:
buildTypes { release { minifyEnabled true useProguard true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug } }তারপর, android/app/proguard-rules.pro-তে নিম্নলিখিত নিয়মগুলি যোগ করুন
#Pushwoosh Flutter-keep class com.pushwoosh.plugin.PushwooshPlugin { *; }-keep class com.pushwoosh.plugin.PushwooshNotificationServiceExtension { *; }সমস্যা সমাধান
Anchor link toইন্টিগ্রেশন প্রক্রিয়া চলাকালীন আপনি যদি কোনো সমস্যার সম্মুখীন হন, অনুগ্রহ করে সাপোর্ট এবং কমিউনিটি বিভাগটি দেখুন।