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

Flutter SDK বেসিক ইন্টিগ্রেশন গাইড

এই বিভাগে আপনার অ্যাপ্লিকেশনে Pushwoosh Flutter SDK কীভাবে ইন্টিগ্রেট করবেন সে সম্পর্কে তথ্য রয়েছে।

পূর্বশর্ত

Anchor link to

আপনার অ্যাপে Pushwoosh Flutter SDK ইন্টিগ্রেট করার জন্য, আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:

ইন্টিগ্রেশন ধাপ

Anchor link to

১. Pushwoosh Flutter SDK ডিপেন্ডেন্সি যোগ করুন

Anchor link to

আপনার pubspec.yaml ফাইলে pushwoosh_flutter প্যাকেজ যোগ করুন:

pubspec.yaml
dependencies:
flutter:
sdk: flutter
# Use the latest version from https://pub.dev/packages/pushwoosh_flutter
pushwoosh_flutter: ^[LATEST_VERSION]

pub.dev-এ সর্বশেষ সংস্করণ দেখুন।

তারপর, ডিপেন্ডেন্সি ইনস্টল করতে আপনার প্রজেক্টের রুট ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালান:

Terminal window
flutter pub get

প্যাকেজটি সঠিকভাবে ইনস্টল হয়েছে কিনা তা দুবার পরীক্ষা করুন:

Terminal window
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() কল করুন।
main.dart
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 Notifications
  • Background 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 টোকেন-এ সেট করুন:

info.plist
<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 কনফিগারেশন ব্যবহার করতে হবে:

Podfile
target 'NotificationServiceExtension' do
use_frameworks!
use_modular_headers!
pod 'PushwooshXCFramework'
inherit! :search_paths
end

৩.৪ iOS Flutter প্রজেক্টের জন্য ডিপেন্ডেন্সি ইনস্টল করা

Anchor link to

iOS Flutter প্রজেক্টের জন্য ডিপেন্ডেন্সি ইনস্টল করতে, নিম্নলিখিত কমান্ডটি চালান:

Terminal window
flutter run

অথবা টার্মিনালে ios ফোল্ডারে নেভিগেট করুন এবং চালান:

Terminal window
pod install --repo-update

৪. Android নেটিভ সেটআপ

Anchor link to

৪.১ ডিপেন্ডেন্সি ইনস্টল করুন

Anchor link to

নিশ্চিত করুন যে প্রয়োজনীয় ডিপেন্ডেন্সি এবং প্লাগইনগুলি আপনার Gradle স্ক্রিপ্টে যোগ করা হয়েছে:

আপনার প্রজেক্ট-স্তরের build.gradle ডিপেন্ডেন্সিতে Google Services Gradle প্লাগইন যোগ করুন:

android/build.gradle
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
}

আপনার অ্যাপ-স্তরের build.gradle ফাইলে প্লাগইনটি প্রয়োগ করুন:

app/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 টোকেন যোগ করুন:

AndroidManifest.xml
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />

গুরুত্বপূর্ণ: আপনার Pushwoosh কন্ট্রোল প্যানেলে টোকেনটিকে সঠিক অ্যাপে অ্যাক্সেস দিতে ভুলবেন না। আরও জানুন

৫. প্রজেক্টটি চালান

Anchor link to

১. প্রজেক্টটি বিল্ড এবং রান করুন। ২. Pushwoosh কন্ট্রোল প্যানেলে যান এবং একটি পুশ নোটিফিকেশন পাঠান। ৩. আপনার অ্যাপে নোটিফিকেশনটি দেখতে পাওয়া উচিত।

বর্ধিত ইন্টিগ্রেশন

Anchor link to

এই পর্যায়ে, আপনি ইতিমধ্যে SDK ইন্টিগ্রেট করেছেন এবং পুশ নোটিফিকেশন পাঠাতে ও গ্রহণ করতে পারেন। এখন, আসুন মূল কার্যকারিতা অন্বেষণ করি

পুশ নোটিফিকেশন ইভেন্ট লিসেনার

Anchor link to

Pushwoosh 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 ফাইলে নিম্নলিখিত স্ট্রিংগুলি যোগ করুন:

build.gradle
buildTypes {
release {
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
}

তারপর, android/app/proguard-rules.pro-তে নিম্নলিখিত নিয়মগুলি যোগ করুন

proguard-rules.pro
#Pushwoosh Flutter
-keep class com.pushwoosh.plugin.PushwooshPlugin { *; }
-keep class com.pushwoosh.plugin.PushwooshNotificationServiceExtension { *; }

সমস্যা সমাধান

Anchor link to

ইন্টিগ্রেশন প্রক্রিয়ার সময় আপনি যদি কোনো সমস্যার সম্মুখীন হন, অনুগ্রহ করে সাপোর্ট এবং কমিউনিটি বিভাগটি দেখুন।