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

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

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

পূর্বশর্ত

Anchor link to

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

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

Anchor link to

১. প্লাগইন ইনস্টল করুন

Anchor link to

Expo CLI ব্যবহার করে Pushwoosh Expo প্লাগইন ইনস্টল করুন

Terminal window
expo install pushwoosh-expo-plugin

Pushwoosh React Native SDK ইনস্টল করুন

Terminal window
npm install pushwoosh-react-native-plugin --save

২. প্লাগইন প্রোপার্টি সেট করুন

Anchor link to

প্রয়োজনীয় প্রোপার্টি সহ প্লাগইনটিকে প্লাগইন অ্যারের সামনে যোগ করুন:

app.json/app.config.js
{
"expo": {
"plugins": [
[
"pushwoosh-expo-plugin",
{
"mode": "development",
"ios": {
"PW_API_TOKEN": "__YOUR_DEVICE_API_TOKEN__"
},
"android": {
"apiToken": "__YOUR_DEVICE_API_TOKEN__"
}
}
]
]
}
}

যেখানে:

  • mode APNs এনভায়রনমেন্ট এনটাইটেলমেন্ট কনফিগার করতে ব্যবহৃত হয়। “Development” বা “production” মান উপলব্ধ আছে।
  • PW_API_TOKEN, apiToken হল আপনার Pushwoosh ডিভাইস API টোকেন

৩. Pushwoosh ইনিশিয়ালাইজ করুন

Anchor link to

আপনার অ্যাপ্লিকেশনের রুট কম্পোনেন্টে:

  • pushwoosh-react-native-plugin প্লাগইনটি ইম্পোর্ট করুন।
  • Pushwoosh SDK ইনিশিয়ালাইজ করুন।
  • পুশ নোটিফিকেশনের জন্য রেজিস্টার করতে আপনার ইনিশিয়ালাইজেশন লজিকে register() কল করুন।
index.tsx
import Pushwoosh from 'pushwoosh-react-native-plugin';
Pushwoosh.init({
"pw_appid": "__YOUR_APP_ID__" ,
"project_number": "__YOUR_FCM_SENDER_ID__"
});
Pushwoosh.register();

যেখানে:

  • __YOUR_APP_ID__ হল Pushwoosh কন্ট্রোল প্যানেল থেকে অ্যাপ্লিকেশন কোড।
  • __YOUR_FCM_SENDER_ID__ হল Firebase কনসোল থেকে Firebase প্রজেক্ট নম্বর।

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

Anchor link to

Firebase কনফিগারেশন ফাইল যোগ করুন:

  1. আপনার google-services.json ফাইলটি প্রজেক্টের রুট ডিরেক্টরিতে কপি করুন।
  2. googleServicesFile প্রোপার্টিকে আপনার google-services.json-এর পাথে সেট করুন এবং package প্রোপার্টি উল্লেখ করুন:
app.json/app.config.js
"expo": {
"name": "sample",
"android": {
"package": "com.pushwoosh.sample",
"googleServicesFile": "./google-services.json"
},
"plugins": [
[
"pushwoosh-expo-plugin",
{
"mode": "development",
"ios": {
"PW_API_TOKEN": "__YOUR_DEVICE_API_TOKEN__"
},
"android": {
"apiToken": "__YOUR_DEVICE_API_TOKEN__"
}
}
]
]
}

৫. iOS নেটিভ সেটআপ

Anchor link to

ios অবজেক্টে bundleIdentifier প্রোপার্টি সেট করুন:

app.json/app.config.js
"expo": {
"name": "sample",
"ios": {
"bundleIdentifier": "com.pushwoosh.sample"
},
"plugins": [
[
"pushwoosh-expo-plugin",
{
"mode": "development",
"ios": {
"PW_API_TOKEN": "__YOUR_DEVICE_API_TOKEN__"
},
"android": {
"apiToken": "__YOUR_DEVICE_API_TOKEN__"
}
}
]
]
}

৬. অ্যাপটি প্রি-বিল্ড করুন

Anchor link to

প্রি-বিল্ড চালিয়ে প্রতিটি প্ল্যাটফর্মের জন্য নেটিভ কোড তৈরি করুন এবং ডিপেন্ডেন্সি কনফিগার করুন:

Terminal window
npx expo prebuild

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

Anchor link to

১. প্রজেক্টটি বিল্ড এবং রান করুন:

Terminal window
npx expo run:android

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

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

Anchor link to

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

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

Anchor link to

Pushwoosh SDK-তে দুটি ইভেন্ট লিসেনার রয়েছে, যা পুশ নোটিফিকেশন পরিচালনার জন্য ডিজাইন করা হয়েছে:

  • onPushReceived ইভেন্টটি ট্রিগার হয়, যখন একটি পুশ নোটিফিকেশন পাওয়া যায়
  • onPushAccepted ইভেন্টটি ট্রিগার হয়, যখন একজন ব্যবহারকারী একটি নোটিফিকেশন খোলেন

অ্যাপ্লিকেশন শুরু হওয়ার সময় SDK-এর ইনিশিয়ালাইজেশনের ঠিক পরেই আপনার এই ইভেন্ট লিসেনারগুলি সেট আপ করা উচিত:

import { DeviceEventEmitter } from 'react-native';
import Pushwoosh from 'pushwoosh-react-native-plugin';
class PushwooshNotificationHandler {
setupPushListeners(): void {
DeviceEventEmitter.addListener("pushReceived", (e) => {
console.warn("Push received: " + JSON.stringify(e));
});
DeviceEventEmitter.addListener("pushOpened", (e) => {
console.warn("Push opened:" + JSON.stringify(e));
});
}
}

ব্যবহারকারী কনফিগারেশন

Anchor link to

ব্যক্তিগত ব্যবহারকারীর আচরণ এবং পছন্দের উপর মনোযোগ দিয়ে, আপনি ব্যক্তিগতকৃত সামগ্রী সরবরাহ করতে পারেন, যা ব্যবহারকারীর সন্তুষ্টি এবং আনুগত্য বৃদ্ধি করে।

import Pushwoosh from 'pushwoosh-react-native-plugin';
class Registration {
afterUserLogin(user: User): void {
// ব্যবহারকারী আইডি সেট করুন
Pushwoosh.setUserId(user.getId());
// ব্যবহারকারী ইমেল সেট করুন
Pushwoosh.setEmails(user.getEmailList());
// Pushwoosh-এর জন্য ট্যাগ হিসাবে অতিরিক্ত ব্যবহারকারীর তথ্য সেট করা
Pushwoosh.setTags({
"age": user.getAge(),
"name": user.getName(),
"last_login": user.getLastLoginDate()
});
}
}

ট্যাগ

Anchor link to

ট্যাগ হল ব্যবহারকারী বা ডিভাইসে নির্ধারিত কী-ভ্যালু পেয়ার, যা পছন্দ বা আচরণের মতো অ্যাট্রিবিউটের উপর ভিত্তি করে সেগমেন্টেশন করতে দেয়, যা টার্গেটেড মেসেজিং সক্ষম করে।

import Pushwoosh from 'pushwoosh-react-native-plugin';
class UpdateUser {
afterUserUpdateProfile(user: User): void {
// পছন্দের ক্যাটাগরির তালিকা সেট করুন
Pushwoosh.setTags({
"favorite_categories": user.getFavoriteCategoriesList()
});
// পেমেন্টের তথ্য সেট করুন
Pushwoosh.setTags({
"is_subscribed": user.isSubscribed(),
"payment_status": user.getPaymentStatus(),
"billing_address": user.getBillingAddress()
});
}
}

ইভেন্ট

Anchor link to

ইভেন্ট হল অ্যাপের মধ্যে নির্দিষ্ট ব্যবহারকারীর ক্রিয়া বা ঘটনা যা আচরণ বিশ্লেষণ করতে এবং সংশ্লিষ্ট বার্তা বা ক্রিয়া ট্রিগার করতে ট্র্যাক করা যেতে পারে।

import Pushwoosh from 'pushwoosh-react-native-plugin';
class Registration {
// লগইন ইভেন্ট ট্র্যাক করুন
afterUserLogin(user: User): void {
Pushwoosh.postEvent("login", {
"name": user.getName(),
"last_login": user.getLastLoginDate()
});
}
// ক্রয় ইভেন্ট ট্র্যাক করুন
afterUserPurchase(product: Product): void {
Pushwoosh.postEvent("purchase", {
"product_id": product.getId(),
"product_name": product.getName(),
"price": product.getPrice(),
"quantity": product.getQuantity()
});
}
}

iOS-এর জন্য মেসেজ ডেলিভারি ট্র্যাকিং

Anchor link to

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

এক্সটেনশন টার্গেট এবং এর মধ্যে প্রয়োজনীয় Pushwoosh কোড যোগ করতে নেটিভ গাইডের ধাপগুলি অনুসরণ করুন।

অতিরিক্ত প্লাগইন প্রোপার্টি

Anchor link to
প্রোপার্টি
ডিফল্ট
বিবরণ
iOS প্রোপার্টি
Pushwoosh_LOG_LEVELINFOiOS-এর জন্য লগ লেভেল। সম্ভাব্য মান: NONE, ERROR, WARN, INFO, DEBUG, NOISE
Android প্রোপার্টি
logLevelINFOAndroid-এর জন্য লগ লেভেল। এর মধ্যে একটি: NONE, ERROR, WARN, INFO, DEBUG, NOISE
multiNotificationModetrueব্যবহারকারীর জন্য শুধুমাত্র শেষ নোটিফিকেশনটি প্রদর্শন করতে চাইলে এটিকে false-এ পরিবর্তন করা যেতে পারে
icon-Android-এর জন্য একটি কাস্টম নোটিফিকেশন আইকনের পাথ

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

Anchor link to

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

FCM রেজিস্ট্রেশন ত্রুটি: টোকেন পুনরুদ্ধার করা যায়নি। Firebase কি সঠিকভাবে কনফিগার করা হয়েছে?
Anchor link to

নিশ্চিত করুন যে আপনার Firebase googleServicesFile প্রোপার্টি Expo কনফিগারেশন ফাইলে সেট আপ করা আছে এবং google-services.json ফাইলটি আপনার প্রজেক্টের রুট ডিরেক্টরিতে যোগ করা হয়েছে:

app.json/app.config.js
"expo": {
"name": "sample",
"android": {
"package": "com.pushwoosh.sample",
"googleServicesFile": "./google-services.json"
},
"plugins": [
[
"pushwoosh-expo-plugin",
{
"mode": "development",
"ios": {
"PW_API_TOKEN": "__YOUR_DEVICE_API_TOKEN__"
},
"android": {
"apiToken": "__YOUR_DEVICE_API_TOKEN__"
}
}
]
]
}
TypeError: Cannot read property ‘init’ of null
Anchor link to

ডিভাইসে অ্যাপটি চালানোর চেষ্টা করার সময় আপনি এই ত্রুটির সম্মুখীন হতে পারেন।
সমস্যাটি সমাধান করতে, নিশ্চিত করুন যে আপনি প্রি-বিল্ড ধাপটি সম্পন্ন করেছেন। এটি নেটিভ কোড তৈরি করে এবং প্রতিটি প্ল্যাটফর্মের জন্য ডিপেন্ডেন্সি কনফিগার করে।

Terminal window
npx expo prebuild