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

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
# 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__",
"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 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 Device API Token-এ সেট করুন:

info.plist
<key>Pushwoosh_API_TOKEN</key>
<string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>

৩.৩ মেসেজ ডেলিভারি ট্র্যাকিং

Anchor link to

আপনাকে অবশ্যই আপনার প্রজেক্টে একটি Notification Service Extension টার্গেট যোগ করতে হবে। এটি সঠিক ডেলিভারি ট্র্যাকিং এবং iOS-এ রিচ মিডিয়ার মতো বৈশিষ্ট্যগুলির জন্য অপরিহার্য।

এক্সটেনশন টার্গেট এবং এর মধ্যে প্রয়োজনীয় 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 Device API Token যোগ করুন:

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) {
// ব্যবহারকারীর আইডি সেট করুন
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 ফাইলে নিম্নলিখিত স্ট্রিংগুলি যোগ করুন:

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

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