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

এক্সপো SDK বেসিক ইন্টিগ্রেশন গাইড

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

পূর্বশর্ত

Anchor link to

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

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

Anchor link to

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

Anchor link to

এক্সপো CLI ব্যবহার করে পুশউশ এক্সপো প্লাগইন ইনস্টল করুন

Terminal window
expo install pushwoosh-expo-plugin

পুশউশ রিঅ্যাক্ট নেটিভ 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 হল আপনার পুশউশ ডিভাইস API টোকেন।

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

Anchor link to

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

  • pushwoosh-react-native-plugin প্লাগইনটি ইম্পোর্ট করুন।
  • পুশউশ 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__ হল পুশউশ কন্ট্রোল প্যানেল থেকে অ্যাপ্লিকেশন কোড।
  • __YOUR_FCM_SENDER_ID__ হল Firebase কনসোল থেকে Firebase প্রজেক্ট নম্বর।

৪. অ্যান্ড্রয়েড নেটিভ সেটআপ

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

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

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

Anchor link to

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

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

Anchor link to

পুশউশ 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 {
// Set user ID
Pushwoosh.setUserId(user.getId());
// Set user email
Pushwoosh.setEmails(user.getEmailList());
// Setting additional user information as tags for 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 {
// 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 Pushwoosh from 'pushwoosh-react-native-plugin';
class Registration {
// Track login event
afterUserLogin(user: User): void {
Pushwoosh.postEvent("login", {
"name": user.getName(),
"last_login": user.getLastLoginDate()
});
}
// Track purchase event
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

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

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

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

Anchor link to
Property
Default
বিবরণ
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 প্রোপার্টি এক্সপো কনফিগারেশন ফাইলে সেট আপ করা আছে এবং 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