এক্সপো SDK বেসিক ইন্টিগ্রেশন গাইড
এই বিভাগে আপনার অ্যাপ্লিকেশনে পুশউশ এক্সপো SDK কীভাবে ইন্টিগ্রেট করবেন সে সম্পর্কে তথ্য রয়েছে।
পূর্বশর্ত
Anchor link toআপনার অ্যাপে পুশউশ এক্সপো SDK ইন্টিগ্রেট করার জন্য, আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:
ইন্টিগ্রেশন ধাপ
Anchor link to১. প্লাগইন ইনস্টল করুন
Anchor link toএক্সপো CLI ব্যবহার করে পুশউশ এক্সপো প্লাগইন ইনস্টল করুন
expo install pushwoosh-expo-pluginপুশউশ রিঅ্যাক্ট নেটিভ 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হল আপনার পুশউশ ডিভাইস API টোকেন।
৩. পুশউশ ইনিশিয়ালাইজ করুন
Anchor link toআপনার অ্যাপ্লিকেশনের রুট কম্পোনেন্টে:
pushwoosh-react-native-pluginপ্লাগইনটি ইম্পোর্ট করুন।- পুশউশ SDK ইনিশিয়ালাইজ করুন।
- পুশ নোটিফিকেশনের জন্য রেজিস্টার করতে আপনার ইনিশিয়ালাইজেশন লজিকে
register()কল করুন।
import Pushwoosh from 'pushwoosh-react-native-plugin';
Pushwoosh.init({ "pw_appid": "__YOUR_APP_ID__"});
Pushwoosh.register();যেখানে:
__YOUR_APP_ID__হল পুশউশ কন্ট্রোল প্যানেল থেকে অ্যাপ্লিকেশন কোড।
৪. অ্যান্ড্রয়েড নেটিভ সেটআপ
Anchor link toফায়ারবেস কনফিগারেশন ফাইল যোগ করুন:
- আপনার
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 tobundleIdentifier প্রপার্টিকে ios অবজেক্টে সেট করুন:
"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২. পুশউশ কন্ট্রোল প্যানেলে যান এবং একটি পুশ নোটিফিকেশন পাঠান। ৩. আপনার অ্যাপে নোটিফিকেশনটি দেখতে পাওয়া উচিত।
বর্ধিত ইন্টিগ্রেশন
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_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 রেজিস্ট্রেশন ত্রুটি: টোকেন পুনরুদ্ধার করতে ব্যর্থ। ফায়ারবেস কি সঠিকভাবে কনফিগার করা হয়েছে?
Anchor link toনিশ্চিত করুন যে আপনার ফায়ারবেস googleServicesFile প্রপার্টি এক্সপো কনফিগারেশন ফাইলে সেট আপ করা আছে এবং 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