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 # Use the latest version from 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__" }); Pushwoosh.getInstance.registerForPushNotifications();}যেখানে:
__YOUR_APP_ID__হল Pushwoosh কন্ট্রোল প্যানেল থেকে অ্যাপ্লিকেশন কোড।
৩. 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 ডিভাইস API টোকেন-এ সেট করুন:
<key>Pushwoosh_API_TOKEN</key><string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>৩.৩ মেসেজ ডেলিভারি ট্র্যাকিং
Anchor link toআপনাকে অবশ্যই আপনার প্রজেক্টে একটি Notification Service Extension টার্গেট যোগ করতে হবে। এটি সঠিক ডেলিভারি ট্র্যাকিং এবং iOS-এ Rich Media-এর মতো বৈশিষ্ট্যগুলির জন্য অপরিহার্য।
এক্সটেনশন টার্গেট এবং এর মধ্যে প্রয়োজনীয় 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 ডিভাইস API টোকেন যোগ করুন:
<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) {
// Set user ID Pushwoosh().setUserId(user.getId());
// Set user email Pushwoosh().setEmail(user.getEmail());
// Register SMS number // The SMS and WhatsApp numbers must be in E.164 format (e.g., "+1234567890") and be valid Pushwoosh().registerSmsNumber(user.getSmsNumber());
// Register WhatsApp number Pushwoosh().registerWhatsappNumber(user.getWhatsappNumber());
// Setting additional user information as tags for 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) {
// Set list of favorite categories Pushwoosh().setTags({ "favorite_categories": user.getFavoriteCategoriesList() });
// Set payment information 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 {
// Track login event void afterUserLogin(User user) { Pushwoosh().postEvent("login", { "name": user.getName(), "last_login": user.getLastLoginDate() }); }
void afterUserPurchase(Product product) {
// Track purchase event 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ইন্টিগ্রেশন প্রক্রিয়ার সময় আপনি যদি কোনো সমস্যার সম্মুখীন হন, অনুগ্রহ করে সাপোর্ট এবং কমিউনিটি বিভাগটি দেখুন।