Expo SDK বেসিক ইন্টিগ্রেশন গাইড
এই বিভাগে আপনার অ্যাপ্লিকেশনে Pushwoosh Expo SDK কীভাবে ইন্টিগ্রেট করতে হয় সে সম্পর্কে তথ্য রয়েছে।
পূর্বশর্ত
Anchor link toআপনার অ্যাপে Pushwoosh Expo SDK ইন্টিগ্রেট করার জন্য, আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:
ইন্টিগ্রেশন ধাপ
Anchor link to১. প্লাগইন ইনস্টল করুন
Anchor link toExpo CLI ব্যবহার করে Pushwoosh Expo প্লাগইন ইনস্টল করুন
expo install pushwoosh-expo-pluginPushwoosh React Native SDK ইনস্টল করুন
npm install pushwoosh-react-native-plugin --save২. প্লাগইন প্রোপার্টি সেট করুন
Anchor link toপ্রয়োজনীয় প্রোপার্টি সহ প্লাগইনটিকে প্লাগইন অ্যারের সামনে যোগ করুন:
{ "expo": { "plugins": [ [ "pushwoosh-expo-plugin", { "mode": "development", "ios": { "PW_API_TOKEN": "__YOUR_DEVICE_API_TOKEN__" }, "android": { "apiToken": "__YOUR_DEVICE_API_TOKEN__" } } ] ] }}যেখানে:
modeAPNs এনভায়রনমেন্ট এনটাইটেলমেন্ট কনফিগার করতে ব্যবহৃত হয়। “Development” বা “production” মান উপলব্ধ আছে।PW_API_TOKEN,apiTokenহল আপনার Pushwoosh ডিভাইস API টোকেন।
৩. Pushwoosh ইনিশিয়ালাইজ করুন
Anchor link toআপনার অ্যাপ্লিকেশনের রুট কম্পোনেন্টে:
pushwoosh-react-native-pluginপ্লাগইনটি ইম্পোর্ট করুন।- Pushwoosh SDK ইনিশিয়ালাইজ করুন।
- পুশ নোটিফিকেশনের জন্য রেজিস্টার করতে আপনার ইনিশিয়ালাইজেশন লজিকে
register()কল করুন।
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 toFirebase কনফিগারেশন ফাইল যোগ করুন:
- আপনার
google-services.jsonফাইলটি প্রজেক্টের রুট ডিরেক্টরিতে কপি করুন। googleServicesFileপ্রোপার্টিকে আপনারgoogle-services.json-এর পাথে সেট করুন এবংpackageপ্রোপার্টি উল্লেখ করুন:
"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 toios অবজেক্টে bundleIdentifier প্রোপার্টি সেট করুন:
"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প্রি-বিল্ড চালিয়ে প্রতিটি প্ল্যাটফর্মের জন্য নেটিভ কোড তৈরি করুন এবং ডিপেন্ডেন্সি কনফিগার করুন:
npx expo prebuild৭. প্রজেক্টটি চালান
Anchor link to১. প্রজেক্টটি বিল্ড এবং রান করুন:
npx expo run:androidnpx expo run:ios২. Pushwoosh কন্ট্রোল প্যানেলে যান এবং একটি পুশ নোটিফিকেশন পাঠান। ৩. আপনার অ্যাপে নোটিফিকেশনটি দেখতে পাওয়া উচিত।
বর্ধিত ইন্টিগ্রেশন
Anchor link toএই পর্যায়ে, আপনি ইতিমধ্যে SDK ইন্টিগ্রেট করেছেন এবং পুশ নোটিফিকেশন পাঠাতে ও গ্রহণ করতে পারেন। এখন, চলুন মূল কার্যকারিতা অন্বেষণ করা যাক।
পুশ নোটিফিকেশন ইভেন্ট লিসেনার
Anchor link toPushwoosh 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_LEVEL | INFO | iOS-এর জন্য লগ লেভেল। সম্ভাব্য মান: NONE, ERROR, WARN, INFO, DEBUG, NOISE |
| Android প্রোপার্টি | ||
logLevel | INFO | Android-এর জন্য লগ লেভেল। এর মধ্যে একটি: NONE, ERROR, WARN, INFO, DEBUG, NOISE |
multiNotificationMode | true | ব্যবহারকারীর জন্য শুধুমাত্র শেষ নোটিফিকেশনটি প্রদর্শন করতে চাইলে এটিকে false-এ পরিবর্তন করা যেতে পারে |
icon | - | Android-এর জন্য একটি কাস্টম নোটিফিকেশন আইকনের পাথ |
সমস্যা সমাধান
Anchor link toইন্টিগ্রেশন প্রক্রিয়া চলাকালীন কোনো সমস্যা হলে, অনুগ্রহ করে সাপোর্ট এবং কমিউনিটি বিভাগটি দেখুন।
FCM রেজিস্ট্রেশন ত্রুটি: টোকেন পুনরুদ্ধার করা যায়নি। Firebase কি সঠিকভাবে কনফিগার করা হয়েছে?
Anchor link toনিশ্চিত করুন যে আপনার Firebase googleServicesFile প্রোপার্টি Expo কনফিগারেশন ফাইলে সেট আপ করা আছে এবং google-services.json ফাইলটি আপনার প্রজেক্টের রুট ডিরেক্টরিতে যোগ করা হয়েছে:
"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ডিভাইসে অ্যাপটি চালানোর চেষ্টা করার সময় আপনি এই ত্রুটির সম্মুখীন হতে পারেন।
সমস্যাটি সমাধান করতে, নিশ্চিত করুন যে আপনি প্রি-বিল্ড ধাপটি সম্পন্ন করেছেন। এটি নেটিভ কোড তৈরি করে এবং প্রতিটি প্ল্যাটফর্মের জন্য ডিপেন্ডেন্সি কনফিগার করে।
npx expo prebuild