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

এক্সপো 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__"
});
Pushwoosh.register();

যেখানে:

  • __YOUR_APP_ID__ হল পুশউশ কন্ট্রোল প্যানেল থেকে অ্যাপ্লিকেশন কোড।

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

Anchor link to

ফায়ারবেস কনফিগারেশন ফাইল যোগ করুন:

  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

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

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
প্রপার্টি
ডিফল্ট
বিবরণ
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 রেজিস্ট্রেশন ত্রুটি: টোকেন পুনরুদ্ধার করতে ব্যর্থ। ফায়ারবেস কি সঠিকভাবে কনফিগার করা হয়েছে?
Anchor link to

নিশ্চিত করুন যে আপনার ফায়ারবেস 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