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

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

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

পূর্বশর্ত

Anchor link to

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

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

Anchor link to

১. Pushwoosh Capacitor SDK ডিপেন্ডেন্সি যোগ করুন

Anchor link to

আপনার প্রজেক্টে Pushwoosh Capacitor SDK ডিপেন্ডেন্সি যোগ করুন:

Terminal window
npm install pushwoosh-capacitor-plugin

Capacitor কনফিগারেশন সিঙ্ক করুন:

Terminal window
npx cap sync

১.১ iOS প্যাকেজ ম্যানেজার বেছে নিন

Anchor link to

npx cap sync আপনার Capacitor প্রজেক্ট যে প্যাকেজ ম্যানেজার ব্যবহার করে, সেটি দিয়ে প্লাগইনের iOS অংশ ইনস্টল করে: Swift Package Manager বা CocoaPods। উভয়ই নেটিভ Pushwoosh SDK এবং Inbox UI-এর একই সংস্করণ সরবরাহ করে। Capacitor 7 এবং Capacitor 8-এ Swift Package Manager সাপোর্টেড।

একটি বিদ্যমান প্রজেক্ট তার প্যাকেজ ম্যানেজার বজায় রাখে: যদি ios/App/CapApp-SPM থাকে, তবে Capacitor CLI Swift Package Manager ব্যবহার করে, অন্যথায় CocoaPods। একটি নতুন iOS প্ল্যাটফর্মের জন্য:

Capacitor 8 ডিফল্টভাবে একটি Swift Package Manager প্রজেক্ট তৈরি করে:

Terminal window
npx cap add ios

এর পরিবর্তে CocoaPods ব্যবহার করতে, npx cap add ios --packagemanager CocoaPods চালান।

Swift Package Manager-এর ক্ষেত্রে, Capacitor CLI প্লাগইনটি ios/App/CapApp-SPM-এ যোগ করে, এবং প্লাগইনটি Pushwoosh iOS SDK এবং Inbox UI নিয়ে আসে। Pushwoosh SDK অ্যাপে দ্বিতীয়বার যোগ করবেন না, pod হিসেবে বা ভিন্ন সংস্করণের প্যাকেজ হিসেবেও না।

২. Capacitor SDK ইনিশিয়ালাইজেশন

Anchor link to

আপনার প্রধান JavaScript ফাইলে, Pushwoosh SDK ইম্পোর্ট এবং ইনিশিয়ালাইজ করুন:

index.js
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Initialize the SDK
Pushwoosh.onDeviceReady({
appid: "__YOUR_APP_CODE__"
});
// Register for push notifications
Pushwoosh.registerDevice()
.then(result => {
console.log("Push token:", result.pushToken);
// Handle successful registration
})
.catch(error => {
console.error("Failed to register device:", error);
// Handle registration error
});

যেখানে:

  • __YOUR_APP_CODE__ হল Pushwoosh কন্ট্রোল প্যানেল থেকে অ্যাপ্লিকেশন কোড।

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

Anchor link to

৩.১ ক্যাপাবিলিটিজ

Anchor link to

আপনার প্রজেক্টে পুশ নোটিফিকেশন সক্রিয় করতে, আপনাকে নির্দিষ্ট কিছু ক্যাপাবিলিটিজ যোগ করতে হবে।

Signing & Capabilities বিভাগে, নিম্নলিখিত ক্যাপাবিলিটিজ যোগ করুন:

  • Push Notifications
  • Background Modes। এই ক্যাপাবিলিটি যোগ করার পরে, Remote notifications-এর জন্য বক্সটি চেক করুন।

আপনি যদি টাইম সেনসিটিভ নোটিফিকেশন (iOS 15+) ব্যবহার করতে চান, তাহলে Time Sensitive Notifications ক্যাপাবিলিটিটিও যোগ করুন।

৩.২ Info.plist

Anchor link to

আপনার ios/App/App/Info.plist-এ __PUSHWOOSH_DEVICE_API_TOKEN__ কী-টি Pushwoosh Device API টোকেনে সেট করুন:

info.plist
<key>Pushwoosh_API_TOKEN</key>
<string>__PUSHWOOSH_DEVICE_API_TOKEN__</string>

৩.৩ মেসেজ ডেলিভারি ট্র্যাকিং

Anchor link to

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

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

  • CocoaPods: নেটিভ গাইডের নোটিফিকেশন সার্ভিস এক্সটেনশনের জন্য নির্ভরতা (শুধুমাত্র CocoaPods) ধাপটি অনুসরণ করুন। ios/App/Podfile-এ, এক্সটেনশন টার্গেটে সংস্করণ ছাড়াই pod 'PushwooshXCFramework' যোগ করুন, যাতে এটি প্লাগইনের ব্যবহৃত সংস্করণে রিজলভ হয়, তারপর npx cap sync ios চালান।

  • Swift Package Manager: নেটিভ গাইডের CocoaPods নির্ভরতার ধাপটি এড়িয়ে যান। Xcode-এ নিজেই এক্সটেনশন টার্গেটে SDK যোগ করুন, কারণ টার্গেটটি প্লাগইনের নির্ভরতা উত্তরাধিকারসূত্রে পায় না:

    1. এক্সটেনশন টার্গেট > General > Frameworks and Libraries খুলুন।
    2. Pushwoosh-XCFramework প্যাকেজের PushwooshFramework প্রোডাক্টটি যোগ করুন। Package.resolved-এ ইতিমধ্যে থাকা সংস্করণটি ব্যবহার করুন।

    আপনি যদি CocoaPods থেকে মাইগ্রেট করে থাকেন, তবে নিশ্চিত করুন যে এক্সটেনশনটি আর pod হিসেবে PushwooshXCFramework পায় না, যাতে অ্যাপে SDK দুবার অন্তর্ভুক্ত না হয়।

তারপর এক্সটেনশন কোডে import PushwooshFramework করুন। App টার্গেটের অতিরিক্ত কিছু লাগে না, কারণ এটি প্লাগইনের মাধ্যমে Pushwoosh SDK পায়।

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

Anchor link to

৪.১ ডিপেন্ডেন্সি ইনস্টল করুন

Anchor link to

নিশ্চিত করুন যে প্রয়োজনীয় ডিপেন্ডেন্সি এবং প্লাগইনগুলি আপনার Gradle স্ক্রিপ্টে যোগ করা হয়েছে:

আপনার প্রজেক্ট-স্তরের build.gradle ডিপেন্ডেন্সিতে Google Services Gradle প্লাগইন যোগ করুন:

android/build.gradle
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
}
}

আপনার অ্যাপ-স্তরের build.gradle ফাইলে প্লাগইনটি প্রয়োগ করুন:

app/build.gradle
apply plugin: 'com.google.gms.google-services'

৪.২ Firebase কনফিগারেশন ফাইল যোগ করুন

Anchor link to

আপনার প্রজেক্ট ডিরেক্টরিতে android/app ফোল্ডারে google-services.json ফাইলটি রাখুন।

৪.৩ Pushwoosh মেটাডেটা যোগ করুন

Anchor link to

আপনার main/AndroidManifest.xml-এ <application> ট্যাগের ভিতরে Pushwoosh Device API টোকেন যোগ করুন:

AndroidManifest.xml
<meta-data android:name="com.pushwoosh.apitoken" android:value="__YOUR_DEVICE_API_TOKEN__" />

গুরুত্বপূর্ণ: আপনার Pushwoosh কন্ট্রোল প্যানেলে সঠিক অ্যাপে টোকেন অ্যাক্সেস দিতে ভুলবেন না। আরও জানুন

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

Anchor link to
  1. প্রজেক্টটি বিল্ড করুন এবং চালান।
  2. Pushwoosh কন্ট্রোল প্যানেলে যান এবং একটি পুশ নোটিফিকেশন পাঠান।
  3. আপনার অ্যাপে নোটিফিকেশনটি দেখতে পাওয়া উচিত।

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

Anchor link to

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

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

Anchor link to

Pushwoosh Capacitor SDK-তে পুশ নোটিফিকেশন পরিচালনা করার জন্য দুটি কলব্যাক পদ্ধতি রয়েছে:

  • pushReceivedCallback ট্রিগার হয় যখন একটি পুশ নোটিফিকেশন গৃহীত হয়
  • pushOpenedCallback ট্রিগার হয় যখন একজন ব্যবহারকারী একটি নোটিফিকেশন খোলে

SDK ইনিশিয়ালাইজেশনের ঠিক পরেই আপনার এই কলব্যাকগুলি সেট আপ করা উচিত:

index.js
import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
// Set up push received callback
await Pushwoosh.pushReceivedCallback((notification, err) => {
if (err) {
console.error("Failed to process received notification:", err);
} else {
console.log("Push received:", JSON.stringify(notification));
// Handle the received notification
}
});
// Set up push opened callback
await Pushwoosh.pushOpenedCallback((notification, err) => {
if (err) {
console.error("Failed to process opened notification:", err);
} else {
console.log("Push opened:", JSON.stringify(notification));
// Handle the opened notification
}
});

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

Anchor link to

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

import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration {
async afterUserLogin(user) {
// Set user ID
Pushwoosh.setUserId(user.getId);
// Setting additional user information as tags for Pushwoosh
await Pushwoosh.setTags({
"age": user.getAge(),
"name": user.getName(),
"last_login": user.getLastLoginDate()
});
}
}

ট্যাগ

Anchor link to

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

import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class UpdateUser {
async afterUserUpdateProfile(user) {
// Set list of favorite categories
await Pushwoosh.setTags({
"favorite_categories": user.getFavoriteCategoriesList()
});
// Set payment information
await Pushwoosh.setTags({
"is_subscribed": user.isSubscribed(),
"payment_status": user.getPaymentStatus(),
"billing_address": user.getBillingAddress()
});
}
}

ইভেন্ট

Anchor link to

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

import { Pushwoosh } from 'pushwoosh-capacitor-plugin';
class Registration {
// Track login event
afterUserLogin(user) {
Pushwoosh.postEvent("login", {
"name": user.getName(),
"last_login": user.getLastLoginDate()
});
}
// Track purchase event
afterUserPurchase(product) {
Pushwoosh.postEvent("purchase", {
"product_id": product.getId(),
"product_name": product.getName(),
"price": product.getPrice(),
"quantity": product.getQuantity()
});
}
}

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

Anchor link to

কোনো পুশ ডেলিভার না হলে, পাঠানোর ত্রুটি পৃষ্ঠায় আপনার প্ল্যাটফর্মের এরর কোডটি খুঁজুন, যাতে এর অর্থ এবং এটি কীভাবে ঠিক করতে হয় তা জানতে পারেন।

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