ওয়েব পুশ SDK 3.0
ইন্টিগ্রেশন
Anchor link toPushwoosh ওয়েব পুশ SDK নিন এবং এটি আনজিপ করুন। আপনার কাছে নিম্নলিখিত ফাইলগুলি থাকা উচিত:
Anchor link to- pushwoosh-service-worker.js
এই সমস্ত ফাইলগুলি আপনার ওয়েবসাইটের টপ-লেভেল রুট ডিরেক্টরিতে রাখুন।
Anchor link toSDK ইনিশিয়ালাইজ করুন:
Anchor link to- আমাদের CDN থেকে SDK-টি অ্যাসিঙ্ক্রোনাসভাবে অন্তর্ভুক্ত করুন।
<script type="text/javascript" src="//cdn.pushwoosh.com/webpush/v3/pushwoosh-web-notifications.js" async></script>- ওয়েব পুশ SDK ইনিশিয়ালাইজ করুন এবং নিশ্চিত করুন যে SDK সম্পূর্ণরূপে লোড না হওয়া পর্যন্ত ইনিশিয়ালাইজেশনটি কিউতে থাকবে।
<script type="text/javascript">var Pushwoosh = Pushwoosh || [];Pushwoosh.push(['init', { logLevel: 'info', // সম্ভাব্য মান: error, info, debug applicationCode: 'XXXXX-XXXXX', // আপনার Pushwoosh কন্ট্রোল প্যানেল থেকে অ্যাপ্লিকেশন কোড apiToken: 'XXXXXXX', // ডিভাইস API টোকেন safariWebsitePushID: 'web.com.example.domain', // আপনার Apple ডেভেলপার পোর্টালে প্রাপ্ত একটি অনন্য রিভার্স-ডোমেন স্ট্রিং। শুধুমাত্র তখনই ব্যবহৃত হয় যদি আপনার অ্যাপ্লিকেশনে Safari Configuration বিভাগ থাকে (উপরে পূর্বশর্ত দেখুন) defaultNotificationTitle: 'Pushwoosh', // পুশ নোটিফিকেশনের জন্য একটি ডিফল্ট শিরোনাম সেট করে defaultNotificationImage: 'https://yoursite.com/img/logo-medium.png', // কাস্টম নোটিফিকেশন ইমেজের URL autoSubscribe: false, // অথবা true। যদি true হয়, SDK ইনিশিয়ালাইজেশনের সময় ব্যবহারকারীকে পুশের জন্য সাবস্ক্রাইব করতে অনুরোধ করে subscribeWidget: { enable: true }, userId: 'user_id', // ঐচ্ছিক, কাস্টম ইউজার আইডি সেট করুন tags: { 'Name': 'John Smith' // ঐচ্ছিক, কাস্টম ট্যাগ সেট করুন }}]);</script>ওয়েব পপআপ
Anchor link toওয়েব পপআপ ক্যাম্পেইন ডিফল্টভাবে লোড হয় — আপনার init অবজেক্টে কোনো webPopups এন্ট্রির প্রয়োজন নেই। শুধুমাত্র অপ্ট আউট করতে বা ডিফল্ট পরিবর্তন করতে একটি যোগ করুন:
webPopups: { // enable: false, // ঐচ্ছিক, সম্পূর্ণভাবে অপ্ট আউট করুন: বান্ডেলটি কখনও লোড হয় না autoShow: true, // ঐচ্ছিক, পপআপগুলি স্বয়ংক্রিয়ভাবে প্রদর্শন না করে লোড করতে false সেট করুন — নিচে WebPopups পদ্ধতি দেখুন colorScheme: 'auto', // ঐচ্ছিক, 'auto' (ডিফল্ট) | 'light' | 'dark'},ওয়েব পপআপ ক্যাম্পেইনগুলি কন্ট্রোল প্যানেলে আপনার কনফিগার করা ওভারলে প্রদর্শন করে, যেমন প্রোমো, ঘোষণা, বা লিড ক্যাপচার ফর্ম। কাস্টম সাবস্ক্রিপশন পপআপ (subscribePopup)-এর বিপরীতে, যা শুধুমাত্র ওয়েব পুশ অপ্ট-ইন পরিচালনা করে, ওয়েব পপআপ ক্যাম্পেইনগুলি আপনার কনফিগার করা যেকোনো বিষয়বস্তু প্রদর্শন করতে পারে। কন্ট্রোল প্যানেলে সেটআপের জন্য, ওয়েব পপআপ বোঝা দেখুন।
colorScheme নির্বাচন করে যে ডার্ক মোড কনফিগার করা একটি পপআপ কোন প্যালেট দিয়ে রেন্ডার হবে:
'auto'(ডিফল্ট): ভিজিটরের OS-স্তরের রঙের স্কিম (prefers-color-scheme) অনুসরণ করে।'light'বা'dark': ভিজিটরের OS সেটিং নির্বিশেষে সর্বদা সেই প্যালেট রেন্ডার করে।
এডিটরে ডার্ক মোড কনফিগার করা ছাড়া একটি পপআপ সবসময় লাইট রেন্ডার করে — colorScheme-এর এতে কোনো প্রভাব নেই।
প্রোগ্রাম্যাটিক নিয়ন্ত্রণের জন্য, WebPopups পদ্ধতি এবং ওয়েব পপআপ ইভেন্ট দেখুন।
পুশ সাবস্ক্রিপশন বোতাম
Anchor link toআপনার ব্যবহারকারীদের পুশ নোটিফিকেশনের জন্য সাবস্ক্রাইব করতে উৎসাহিত করার জন্য, আমরা আপনার ওয়েবসাইটে একটি পুশ সাবস্ক্রিপশন বোতাম প্রয়োগ করার সুপারিশ করি। ব্যবহারকারীর অভিজ্ঞতা উন্নত করুন এবং আরও সাবস্ক্রাইবার পান!
কনফিগারেশন
Anchor link toআপনার ওয়েবসাইটে পুশ নোটিফিকেশন প্রয়োগ সম্পূর্ণ করতে, আপনাকে আমাদের ধাপে ধাপে নির্দেশিকা অনুসরণ করে আপনার Pushwoosh কন্ট্রোল প্যানেলে ওয়েব প্ল্যাটফর্মগুলি কনফিগার করতে হবে:
একই কনফিগারেশন স্ক্রিনে একটি Web SDK configuration কার্ডও রয়েছে।
একটি ভিন্ন স্কোপে সার্ভিস ওয়ার্কার রেজিস্টার করা
Anchor link toকখনও কখনও আপনি সার্ভিস ওয়ার্কার ফাইলটি ওয়েবসাইটের রুট ডিরেক্টরিতে না রেখে একটি সাবডিরেক্টরিতে রাখতে পারেন।
এই ক্ষেত্রে, একটি প্যারামিটার যোগ করে কনফিগারেশনটি (ধাপ ৪.৩) পরিবর্তন করুন
serviceWorkerUrl: “/push-notifications/pushwoosh-service-worker.js”
যেখানে /push-notifications/pushwoosh-service-worker.js হল pushwoosh-service-worker.js ফাইলের পাথ।
ইভেন্ট হ্যান্ডলার
Anchor link toPushwoosh ওয়েব SDK 3.0-এ আপনি নির্দিষ্ট ইভেন্টগুলি ট্র্যাক করার জন্য সাবস্ক্রাইব করতে পারেন**,** অথবা যদি আর ট্র্যাক করার প্রয়োজন না থাকে তবে ইভেন্টগুলি থেকে আনসাবস্ক্রাইব করতে পারেন।
ওয়েব SDK 3.0 লোড ট্র্যাক করতে, onLoad ইভেন্টটি নিম্নরূপ ফায়ার করুন:
// লোড ইভেন্টPushwoosh.push(['onLoad', (api) => { console.log('Pushwoosh লোড!');}]);সঠিক ওয়েব SDK ইনিশিয়ালাইজেশন ট্র্যাক করতে, onReady ইভেন্টটি ফায়ার করুন:
// রেডি ইভেন্টPushwoosh.push((api) => { console.log('Pushwoosh প্রস্তুত!');});SDK-এর যেকোনো ইভেন্টে সাবস্ক্রাইব বা আনসাবস্ক্রাইব করতে, SDK লোড হওয়ার পরে হ্যান্ডলারগুলি ব্যবহার করুন:
Pushwoosh.push(['onLoad', (api) => { function onEventNameHandler() { console.log('ট্রিগার করা ইভেন্ট: event-name!'); }
// একটি ইভেন্টে সাবস্ক্রাইব করতে: Pushwoosh.addEventHandler('event-name', onEventNameHandler)
// একটি ইভেন্ট থেকে আনসাবস্ক্রাইব করতে: Pushwoosh.removeEventHandler('event-name', onEventNameHandler)}]);SDK ইভেন্ট
Anchor link toসাবস্ক্রাইব ইভেন্ট
Anchor link toএকজন ব্যবহারকারী পুশ নোটিফিকেশন পেতে সম্মত হওয়ার পরে এটি কার্যকর হয়।
Pushwoosh.push(['onLoad', (api) => { Pushwoosh.addEventHandler('subscribe', (payload) => { console.log('ট্রিগার করা ইভেন্ট: subscribe'); });}]);আনসাবস্ক্রাইব ইভেন্ট
Anchor link toএকটি ডিভাইস নোটিফিকেশন থেকে আনরেজিস্টার হওয়ার পরে এটি কার্যকর হয়।
Pushwoosh.push(['onLoad', (api) => { Pushwoosh.addEventHandler('unsubscribe', (payload) => { console.log('ট্রিগার করা ইভেন্ট: unsubscribe'); });}]);সাবস্ক্রিপশন উইজেট ইভেন্ট
Anchor link toএকটি সাবস্ক্রিপশন প্রম্পট উইজেট প্রদর্শন ট্র্যাক করুন।
Pushwoosh.push(['onLoad', (api) => { // সাবস্ক্রিপশন প্রম্পট উইজেট প্রদর্শনের সময় কার্যকর হয় Pushwoosh.addEventHandler('show-subscription-widget', (payload) => { console.log('ট্রিগার করা ইভেন্ট: show-subscription-widget'); });
// সাবস্ক্রিপশন প্রম্পট উইজেট লুকানোর সময় কার্যকর হয় Pushwoosh.addEventHandler('hide-subscription-widget', (payload) => { console.log('ট্রিগার করা ইভেন্ট: hide-subscription-widget'); });}]);নোটিফিকেশন পারমিশন ডায়ালগ ইভেন্ট
Anchor link toনেটিভ সাবস্ক্রিপশন ডায়ালগ প্রদর্শন ট্র্যাক করুন।
Pushwoosh.push(['onLoad', function (api) { // পারমিশন ডায়ালগ প্রদর্শনের সময় কার্যকর হয় Pushwoosh.addEventHandler('show-notification-permission-dialog', (payload) => { console.log('ট্রিগার করা ইভেন্ট: show-notification-permission-dialog'); });
// তিনটি সম্ভাব্য স্ট্যাটাসের একটি দিয়ে পারমিশন ডায়ালগ লুকানোর সময় কার্যকর হয়: // 1. default - ডায়ালগটি বন্ধ // 2. granted - অনুমতি দেওয়া হয়েছে // 3. denied - অনুমতি প্রত্যাখ্যান করা হয়েছে Pushwoosh.addEventHandler('hide-notification-permission-dialog', (payload) => { console.log('ট্রিগার করা ইভেন্ট: hide-notification-permission-dialog', payload.permission); });}]);পারমিশন ইভেন্ট
Anchor link toSDK ইনিশিয়ালাইজেশনের সময় পুশ নোটিফিকেশন পারমিশনের স্ট্যাটাস পরীক্ষা করুন; যখনই এই স্ট্যাটাসের আপডেট হয় তা ট্র্যাক করুন।
Pushwoosh.push(['onLoad', (api) => { // SDK ইনিশিয়ালাইজেশনের সময় যদি 'autoSubscribe: false' হয় বা/এবং যদি একজন ব্যবহারকারী পুশ নোটিফিকেশন প্রম্পট উপেক্ষা করে তবে কার্যকর হয়। Pushwoosh.addEventHandler('permission-default', (payload) => { console.log('ট্রিগার করা ইভেন্ট: permission-default'); });
// SDK ইনিশিয়ালাইজেশনের সময় যদি নোটিফিকেশন ব্লক করা থাকে বা একবার একজন ব্যবহারকারী পুশ নোটিফিকেশন ব্লক করে তবে কার্যকর হয়। Pushwoosh.addEventHandler('permission-denied', (payload) => { console.log('ট্রিগার করা ইভেন্ট: permission-denied'); });
// SDK ইনিশিয়ালাইজেশনের সময় যদি নোটিফিকেশন অনুমোদিত থাকে বা একবার একজন ব্যবহারকারী পুশ নোটিফিকেশন অনুমোদন করে তবে কার্যকর হয়। Pushwoosh.addEventHandler('permission-granted', (payload) => { console.log('ট্রিগার করা ইভেন্ট: permission-granted'); });}]);পুশ গ্রহণ ইভেন্ট
Anchor link toএকটি ডিভাইসে পুশ ডেলিভারি ট্র্যাক করুন।
Pushwoosh.push(['onLoad', (api) => { // যখন একটি পুশ নোটিফিকেশন প্রদর্শিত হয় তখন কার্যকর হয়। Pushwoosh.addEventHandler('receive-push', (payload) => { console.log('ট্রিগার করা ইভেন্ট: receive-push', payload.notification); });}]);নোটিফিকেশন ইভেন্ট
Anchor link toএকজন ব্যবহারকারী দ্বারা একটি পুশ নোটিফিকেশন খোলা বা বন্ধ করা হয়েছে কিনা তা ট্র্যাক করুন।
Pushwoosh.push(['onLoad', (api) => { // যখন একজন ব্যবহারকারী নোটিফিকেশনে ক্লিক করে তখন কার্যকর হয়। Pushwoosh.addEventHandler('open-notification', (payload) => { console.log('ট্রিগার করা ইভেন্ট: open-notification', payload.notification); });
// যখন একজন ব্যবহারকারী একটি পুশ নোটিফিকেশন বন্ধ করে তখন কার্যকর হয়। Pushwoosh.addEventHandler('hide-notification', (payload) => { console.log('ট্রিগার করা ইভেন্ট: hide-notification', payload.notification); });}]);ইনবক্স ইভেন্ট
Anchor link toইনবক্সে পাঠানো নোটিফিকেশন ট্র্যাক করুন।
Pushwoosh.push(['onLoad', (api) => { // ইনবক্স বার্তা পাওয়ার এবং indexedDB-তে সেভ করার পরে ServiceWorker দ্বারা কার্যকর হয়। Pushwoosh.addEventHandler('receive-inbox-message', (payload) => { console.log('ট্রিগার করা ইভেন্ট: receive-inbox-message', payload.message); });
// পৃষ্ঠা লোড হওয়ার সময় ইনবক্স স্বয়ংক্রিয়ভাবে আপডেট হওয়ার পরে কার্যকর হয়। Pushwoosh.addEventHandler('update-inbox-messages', (payload) => { console.log('ট্রিগার করা ইভেন্ট: receive-inbox-message', payload.messages); });}]);কাস্টম সাবস্ক্রিপশন পপআপ ইভেন্ট
Anchor link toকাস্টম সাবস্ক্রিপশন পপআপ ইভেন্টগুলি পরিচালনা করার বিষয়ে বিস্তারিত জানতে, অনুগ্রহ করে কাস্টম সাবস্ক্রিপশন পপআপ ইভেন্টস গাইড দেখুন।
ওয়েব পপআপ ইভেন্ট
Anchor link toPushwoosh.push(['onLoad', (api) => { // ওয়েব পপআপ লোড হয়ে গেলে এবং বর্তমান পৃষ্ঠার জন্য স্বয়ংক্রিয় প্রদর্শন পাইপলাইন চললে কার্যকর হয় Pushwoosh.addEventHandler('web-popups-ready', () => { console.log('ট্রিগার করা ইভেন্ট: web-popups-ready'); });
// যখন একটি ওয়েব পপআপ দেখানো হয়, স্বয়ংক্রিয়ভাবে বা webPopups.show() এর মাধ্যমে Pushwoosh.addEventHandler('show-web-popup', (payload) => { console.log('ট্রিগার করা ইভেন্ট: show-web-popup', payload.code, payload.trigger); // trigger: 'auto' | 'api' });
// যখন একটি ওয়েব পপআপ লুকানো হয় Pushwoosh.addEventHandler('hide-web-popup', (payload) => { console.log('ট্রিগার করা ইভেন্ট: hide-web-popup', payload.code, payload.reason); // reason: 'user' | 'api' | 'preempted' });}]);ওয়েব পুশ SDK ইনিশিয়ালাইজ হওয়ার পরে, আপনি Pushwoosh API-তে নিম্নলিখিত কলগুলি করতে পারেন। সমস্ত পদ্ধতি Promise অবজেক্ট রিটার্ন করে।
Pushwoosh.push((api) => { // একজন ব্যবহারকারীর জন্য ট্যাগ সেট করুন api.setTags({ 'Tag Name 1': 'value1', 'Tag Name 2': 'value2' });
// সার্ভার থেকে একজন ব্যবহারকারীর জন্য ট্যাগ পান api.getTags();
// ইউজার আইডি রেজিস্টার করুন api.registerUser('user123');
// ব্যবহারকারীর ইমেল রেজিস্টার করুন api.registerEmail('user@example.com');
// SMS নম্বর রেজিস্টার করুন api.registerSmsNumber('+15551234567');
// WhatsApp নম্বর রেজিস্টার করুন api.registerWhatsappNumber('+1234567890');
// একটি ইভেন্ট পোস্ট করুন api.postEvent('myEventName', {attributeName: 'attributeValue'});
//নোটিফিকেশন থেকে আনরেজিস্টার করুন api.unregisterDevice();
// ডিভাইসের ভাষা সেট করুন ("Language" ট্যাগের মান ওভাররাইড করে) api.setLanguage('es');
// বিকল্পভাবে ডিভাইস এবং চ্যানেল সহ ব্যবহারকারীকে মাল্টি-রেজিস্টার করুন api.multiRegisterDevice({ user_id: 'user123', email: 'user@example.com', sms_phone_number: '+1234567890', tags: { 'UserType': { operation: TTagOperationSet, value: 'Premium' }, 'Interests': { operation: TTagOperationAppend, values: ['sports', 'technology'] } } });});multiRegisterDevice
Anchor link toউন্নত রেজিস্ট্রেশন পদ্ধতি যা একটি একক API কলে একাধিক ডিভাইস এবং মেসেজিং চ্যানেল সহ একটি ব্যবহারকারী প্রোফাইল রেজিস্টার করার অনুমতি দেয়। এই পদ্ধতিটি বিশেষত ক্রস-প্ল্যাটফর্ম অ্যাপ্লিকেশন বা ওমনিচ্যানেল মেসেজিং কৌশল বাস্তবায়নের জন্য দরকারী।
Pushwoosh.push((api) => { api.multiRegisterDevice({ user_id: 'user123', // ঐচ্ছিক: ব্যবহারকারী শনাক্তকারী email: 'user@example.com', // ঐচ্ছিক: ইমেল মেসেজিংয়ের জন্য ইমেল sms_phone_number: '+1234567890', // ঐচ্ছিক: SMS ফোন নম্বর (E.164 ফরম্যাট) whatsapp_phone_number: '+1234567890', // ঐচ্ছিক: WhatsApp নম্বর (E.164 ফরম্যাট) kakao_phone_number: '+1234567890', // ঐচ্ছিক: KakaoTalk নম্বর (E.164 ফরম্যাট) language: 'en', // ঐচ্ছিক: ভাষা কোড (ISO 639-1) timezone: 'America/New_York', // ঐচ্ছিক: টাইমজোন শনাক্তকারী city: 'New York', // ঐচ্ছিক: টার্গেটিংয়ের জন্য শহর country: 'US', // ঐচ্ছিক: টার্গেটিংয়ের জন্য দেশ state: 'NY', // ঐচ্ছিক: টার্গেটিংয়ের জন্য রাজ্য tags: { // ঐচ্ছিক: অপারেশন সহ ট্যাগ মান 'UserType': { operation: TTagOperationSet, // ট্যাগ মান সেট করুন (0) value: 'Premium' }, 'Interests': { operation: TTagOperationAppend, // ট্যাগ মানে যোগ করুন (1) values: ['sports', 'technology'] }, 'LoginCount': { operation: TTagOperationIncrement, // ট্যাগ মান বৃদ্ধি করুন (3) value: '1' } }, push_devices: [ // ঐচ্ছিক: পুশ ডিভাইসের অ্যারে { hwid: 'web-device-456', platform: TPlatformChrome, // Chrome প্ল্যাটফর্ম (11) push_token: 'fcm-token-here', app_version: '2.1.0', platformData: { public_key: 'web-push-public-key', auth_token: 'web-push-auth-token', browser: 'chrome' } } ] }) .then((response) => { console.log('মাল্টি-রেজিস্ট্রেশন সফল:', response); }) .catch((error) => { console.error('মাল্টি-রেজিস্ট্রেশন ব্যর্থ:', error); });});প্ল্যাটফর্মের প্রকার:
TPlatformSafari(10): Safari প্ল্যাটফর্ম। যেসব অ্যাপ্লিকেশনে Safari কনফিগারেশন বিভাগ নেই, সেগুলো Safari ডিভাইসকে পরিবর্তেTPlatformChrome(11) হিসেবে নিবন্ধন করে।TPlatformChrome(11): Chrome প্ল্যাটফর্মTPlatformFirefox(12): Firefox প্ল্যাটফর্ম
ট্যাগ অপারেশনের প্রকার:
TTagOperationSet(0): ট্যাগ মান সেট করুন (বিদ্যমান মান প্রতিস্থাপন করুন)TTagOperationAppend(1): ট্যাগ মানে যোগ করুন (তালিকায় যোগ করুন)TTagOperationRemove(2): ট্যাগ মান সরান (তালিকা থেকে সরান)TTagOperationIncrement(3): ট্যাগ মান বৃদ্ধি করুন (সংখ্যাসূচক বৃদ্ধি)
সুবিধা:
- একক API কল: একবারে একাধিক ডিভাইস এবং চ্যানেল রেজিস্টার করুন
- অ্যাটমিক অপারেশন: সমস্ত রেজিস্ট্রেশন একসাথে সফল বা ব্যর্থ হয়
- ব্যবহারকারী-কেন্দ্রিক: সমস্ত ডিভাইসকে একটি একক ব্যবহারকারী প্রোফাইলের সাথে যুক্ত করে
- উন্নত ট্যাগিং: জটিল ট্যাগ অপারেশন সমর্থন করে
- ক্রস-প্ল্যাটফর্ম: একযোগে একাধিক প্ল্যাটফর্ম পরিচালনা করুন
Pushwoosh-এ ট্যাগ পাঠানোর উদাহরণ:
Pushwoosh.push((api) => { var myCustomTags = { 'Tag 1': 123, 'Tag 2': 'some string' }; api.setTags(myCustomTags) .then((res) => { var skipped = res && res.skipped || []; if (!skipped.length) { console.log('সফল'); } else { console.warn('বাদ দেওয়া ট্যাগ:', skipped); } }) .catch((err) => { console.error('setTags ত্রুটি:', err); });});ট্যাগ মান বৃদ্ধি করুন
Anchor link toএকটি নম্বর ট্যাগের মান বৃদ্ধি করতে, operation প্যারামিটারটি ‘increment’ মান সহ নিম্নরূপ ব্যবহার করুন:
Pushwoosh.push((api) => { api.setTags({ 'Tag 1': { operation: 'increment', value: 1 } })});ট্যাগ মান যোগ করুন
Anchor link toবিদ্যমান তালিকা ট্যাগে নতুন মান যোগ করতে, operation প্যারামিটারটি ‘append’ মান সহ নিম্নরূপ ব্যবহার করুন:
Pushwoosh.push((api) => { api.setTags({ 'Tag 3': { operation: 'append', value: ['Value3'] } })});ট্যাগ মান সরান
Anchor link toএকটি তালিকা ট্যাগ থেকে একটি মান সরাতে, operation প্যারামিটারটি ‘remove’ মান সহ নিম্নরূপ ব্যবহার করুন:
Pushwoosh.push((api) =>{ api.setTags({ 'Tag 3': { operation: 'remove', value: ['Value2'] } })});পাবলিক পদ্ধতি
Anchor link toPushwoosh.subscribe()
এই পদ্ধতিটি পুশ নোটিফিকেশনের জন্য ব্যবহারকারীর অনুমতি অনুরোধ করতে ব্যবহৃত হয়। যদি একজন ব্যবহারকারী ইতিমধ্যে সাবস্ক্রাইব করে থাকেন, তবে পদ্ধতিটি কার্যকর হওয়া বন্ধ করবে।
যদি একজন ব্যবহারকারী এখনও পুশের জন্য সাবস্ক্রাইব না করে থাকেন:
1. পুশ নোটিফিকেশনের জন্য অনুমতি অনুরোধ করা হয়।

2. যদি একজন ব্যবহারকারী নোটিফিকেশন অনুমোদন করেন, onSubscribe ইভেন্টটি ট্রিগার হয়।
SDK ইনিশিয়ালাইজেশনের সময় autoSubscribe: true সেট করা থাকলে Pushwoosh.subscribe() স্বয়ংক্রিয়ভাবে কার্যকর হয়।
ইনিশিয়ালাইজেশনের সময় autoSubscribe: false প্যারামিটার ব্যবহার করে যদি আপনি ম্যানুয়ালি একজন ব্যবহারকারীকে পুশের জন্য সাবস্ক্রাইব করতে উৎসাহিত করার সিদ্ধান্ত নিয়ে থাকেন তবে এই পদ্ধতিটি কল করুন:
<button onclick="Pushwoosh.subscribe()">সাবস্ক্রাইব</button><script> Pushwoosh.push(['onSubscribe', (api) => { console.log('ব্যবহারকারী সফলভাবে সাবস্ক্রাইব করেছেন'); }]);</script>Pushwoosh.unsubscribe()
/unregisterDeviceপদ্ধতিটি কার্যকর হয়।onUnsubscribeইভেন্টটি ট্রিগার হয়।
<button onclick="Pushwoosh.unsubscribe()">আনসাবস্ক্রাইব</button><script type="text/javascript"> Pushwoosh.push(['onUnsubscribe', (api) => { console.log('ব্যবহারকারী সফলভাবে আনসাবস্ক্রাইব করেছেন'); }]);</script>Pushwoosh.isSubscribed()
একজন ব্যবহারকারী সাবস্ক্রাইব করেছেন কিনা তা পরীক্ষা করে এবং true/false ফ্ল্যাগ রিটার্ন করে।
Pushwoosh.isSubscribed().then((isSubscribed) => { console.log('isSubscribed', isSubscribed);});Pushwoosh.getHWID()
Pushwoosh HWID রিটার্ন করে।
Pushwoosh.getHWID().then((hwid) => { console.log('hwid:', hwid);});Pushwoosh.getPushToken()
পুশ টোকেন উপলব্ধ থাকলে তা রিটার্ন করে।
Pushwoosh.getPushToken().then((pushToken) => { console.log('pushToken:', pushToken);});Pushwoosh.getUserId()
উপলব্ধ থাকলে ইউজার আইডি রিটার্ন করে।
Pushwoosh.getUserId().then((userId) => { console.log('userId:', userId);});Pushwoosh.getParams()
নিম্নলিখিত প্যারামিটারগুলির একটি তালিকা রিটার্ন করে:
Pushwoosh.getParams().then((params) => { params = params || {}; var hwid = params.hwid; var pushToken = params.pushToken; var userId = params.userId;});Pushwoosh.isAvailableNotifications()
একটি ব্রাউজার Pushwoosh WebSDK 3.0 সমর্থন করে কিনা তা পরীক্ষা করে, ‘true’ বা ‘false’ রিটার্ন করে।
Pushwoosh.isAvailableNotifications() // true/falseInboxMessages পদ্ধতি
Anchor link tomessagesWithNoActionPerformedCount(): Promise<number>
খোলা বার্তার সংখ্যা রিটার্ন করে।
Pushwoosh.pwinbox.messagesWithNoActionPerformedCount() .then((count) => { console.log(`${count}টি বার্তা খোলা হয়েছে`); });unreadMessagesCount()
অপঠিত বার্তার সংখ্যা রিটার্ন করে।
Pushwoosh.pwinbox.unreadMessagesCount() .then((count) => { console.log(`${count}টি বার্তা অপঠিত`); });messagesCount(): Promise<number>
মোট বার্তার সংখ্যা রিটার্ন করে।
Pushwoosh.pwinbox.messagesCount() .then((count) => { console.log(`${count}টি বার্তা`); });loadMessages(): Promise<Array>
মুছে না ফেলা বার্তাগুলির তালিকা লোড করে।
Pushwoosh.pwinbox.loadMessages() .then(() => { console.log('বার্তা লোড করা হয়েছে'); });readMessagesWithCodes(codes: Array<string>): Promise<void>
Inbox_Ids দ্বারা বার্তাগুলিকে পঠিত হিসাবে চিহ্নিত করে।
Pushwoosh.pwinbox.readMessagesWithCodes(codes) .then(() => { console.log('বার্তাগুলি পঠিত হয়েছে'); });performActionForMessageWithCode(code: string): Promise<void>
একটি বার্তায় নির্ধারিত ক্রিয়া সম্পাদন করে এবং বার্তাটিকে পঠিত হিসাবে চিহ্নিত করে।
Pushwoosh.pwinbox.performActionForMessageWithCode(code) .then(() => { console.log('ক্রিয়াটি সম্পাদিত হয়েছে'); });deleteMessagesWithCodes(codes: Array<string>): Promise<void>
বার্তাগুলিকে মুছে ফেলা হিসাবে চিহ্নিত করে।
Pushwoosh.pwinbox.deleteMessagesWithCodes([code]) .then(() => { console.log('বার্তাগুলি মুছে ফেলা হয়েছে'); });syncMessages(): Promise<void>
সার্ভারের সাথে বার্তাগুলি সিঙ্ক্রোনাইজ করে।
Pushwoosh.pwinbox.syncMessages() .then(() => { console.log('বার্তাগুলি সিঙ্ক্রোনাইজ করা হয়েছে'); });WebPopups পদ্ধতি
Anchor link toপ্রোগ্রাম্যাটিক ওয়েব পপআপ API যখনই উইজেটটি লোড হয় তখন উপলব্ধ থাকে, যা ডিফল্ট (উপরে দেখুন)। web-popups-ready ইভেন্টটি ফায়ার হওয়ার পরে Pushwoosh.moduleRegistry.webPopups এর মাধ্যমে এটি অ্যাক্সেস করুন।
show(code: string): Promise<boolean>
একটি পপআপ অবিলম্বে দেখায়, সমস্ত প্রদর্শন শর্ত (বিলম্ব, পৃষ্ঠা নিয়ম, ডিভাইস/ভিজিটর প্রকার, ফ্রিকোয়েন্সি ক্যাপিং, ট্রিগার প্রকার) বাইপাস করে। জায়গা করার জন্য একটি ইতিমধ্যে দৃশ্যমান পপআপ বন্ধ করে। যখন পপআপটি দেখানো যায় না তখন প্রত্যাখ্যান করার পরিবর্তে false সমাধান করে।
Pushwoosh.moduleRegistry.webPopups.show('popup_code') .then((shown) => console.log('পপআপ দেখানো হয়েছে:', shown));hide(code?: string): boolean
দৃশ্যমান পপআপটি লুকায়। যদি code পাস করা হয়, তবে এটি শুধুমাত্র তখনই লুকায় যখন এটি দৃশ্যমান পপআপের সাথে মেলে। যদি কিছু লুকানো না হয় তবে false রিটার্ন করে।
Pushwoosh.moduleRegistry.webPopups.hide();hideAll(): boolean
দৃশ্যমান পপআপটি লুকায় এবং বর্তমান পৃষ্ঠা লোডের জন্য এখনও মুলতুবি থাকা সমস্ত কিছু খারিজ করে। show() এর পরেও কাজ করতে থাকে।
Pushwoosh.moduleRegistry.webPopups.hideAll();isVisible(code?: string): boolean
একটি পপআপ বর্তমানে দৃশ্যমান কিনা তা পরীক্ষা করে। code ছাড়া, কোনো পপআপ দৃশ্যমান কিনা তা পরীক্ষা করে।
Pushwoosh.moduleRegistry.webPopups.isVisible('popup_code');getVisibleCode(): string | null
বর্তমানে স্ক্রিনে থাকা পপআপের কোড রিটার্ন করে, অথবা যদি কোনোটি দৃশ্যমান না থাকে তবে null।
Pushwoosh.moduleRegistry.webPopups.getVisibleCode();getAvailableCodes(): Array<string>
সার্ভার এই ডিভাইসের জন্য যে সমস্ত পপআপ রিটার্ন করেছে তার কোডগুলি রিটার্ন করে।
Pushwoosh.moduleRegistry.webPopups.getAvailableCodes();getState(): object
ওয়েব পপআপের অবস্থার একটি স্ন্যাপশট রিটার্ন করে: visible (স্ক্রিনে কোড, বা null), queued (ডিসপ্লে স্লটের জন্য অপেক্ষারত কোড), waiting (একটি সশস্ত্র বিলম্ব টাইমার সহ কোড), এবং available (সার্ভার যে সমস্ত কোড রিটার্ন করেছে)।
Pushwoosh.moduleRegistry.webPopups.getState();প্রগ্রেসিভ ওয়েব অ্যাপ সমর্থন
Anchor link toআপনার প্রগ্রেসিভ ওয়েব অ্যাপ্লিকেশন (PWA)-এ Pushwoosh ইন্টিগ্রেট করতে, নিচে বর্ণিত ধাপগুলি অনুসরণ করুন।
1. আপনার সার্ভিস ওয়ার্কার ফাইলের পাথ কপি করুন:
if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/service-worker.js') // <- আপনার সার্ভিস ওয়ার্কার url });}তারপর, WebSDK ইনিশিয়ালাইজ করার সময় serviceWorkerUrl প্যারামিটারটি নিম্নরূপ ব্যবহার করুন:
var Pushwoosh = Pushwoosh || [];Pushwoosh.push(['init', { logLevel: 'error', applicationCode: 'XXXXX-XXXXX', safariWebsitePushID: 'web.com.example.domain', defaultNotificationTitle: 'Pushwoosh', defaultNotificationImage: 'https://yoursite.com/img/logo-medium.png', serviceWorkerUrl: '/service-worker.js', // <- আপনার সার্ভিস ওয়ার্কার url}]);WebSDK নতুন সার্ভিস ওয়ার্কারটি অবিলম্বে রেজিস্টার করে না; যখন প্রয়োজন হয় তখন একটি সার্ভিস ওয়ার্কার রেজিস্টার করা হয়:
- যখন একটি ডিভাইস একটি পুশ টোকেন পায় (ডিভাইস রেজিস্ট্রেশন বা পুনরায় সাবস্ক্রিপশনের সময়),
- যখন একটি পুশ টোকেন মুছে ফেলা হয় (ব্যবহারকারীর বেস থেকে একটি ডিভাইস সরানোর সময়)।
এটি সার্ভার অনুরোধের সংখ্যা কমিয়ে আপনার পৃষ্ঠাগুলির লোডিং গতি বাড়ায়।
ব্রাউজারগুলি একই সময়ে দুটি ভিন্ন সার্ভিস ওয়ার্কার রেজিস্টার করার অনুমতি দেয় না (আরও পড়ুন: https://github.com/w3c/ServiceWorker/issues/921), তাই আপনার PWA সঠিকভাবে কাজ করার জন্য, আপনার কোডবেস এবং Pushwoosh কোডবেসের জন্য একটি সাধারণ সার্ভিস ওয়ার্কার রেজিস্টার করা উচিত।
2. আপনার সার্ভিস ওয়ার্কারে নিম্নলিখিত স্ট্রিংটি যোগ করুন (শুরুতে বা শেষে, এটা কোনো ব্যাপার না):
importScripts('https://cdn.pushwoosh.com/webpush/v3/pushwoosh-service-worker.js' + self.location.search);এইভাবে আপনি আপনার সার্ভিস ওয়ার্কারের জন্য Pushwoosh পরিষেবাগুলির মাধ্যমে পাঠানো পুশ নোটিফিকেশন গ্রহণ এবং প্রক্রিয়াকরণ সক্ষম করেন।
Google ট্যাগ ম্যানেজার থেকে ইনস্টল করা
Anchor link toPushwoosh SDK ইনিশিয়ালাইজ করতে আপনার Google ট্যাগ ম্যানেজারে নিম্নলিখিত কোডটি ব্যবহার করুন। একটি কাস্টম HTML ট্যাগ তৈরি করুন এবং নিচের কোডটি পেস্ট করুন। আপনার Pushwoosh অ্যাপ্লিকেশন কোড, Safari ওয়েবসাইট আইডি, এবং ডিফল্ট নোটিফিকেশন ইমেজ URL পরিবর্তন করতে ভুলবেন না।
এছাড়াও উচ্চ ট্যাগ ফায়ারিং অগ্রাধিকার (যেমন: ১০০) সেট করুন এবং এটি সমস্ত পৃষ্ঠাগুলিতে ট্রিগার করুন। একটি স্ক্রিনশটের জন্য নিচে দেখুন। কপি করুন
<script type="text/javascript" src="//cdn.pushwoosh.com/webpush/v3/pushwoosh-web-notifications.js" async></script><script type="text/javascript"> var Pushwoosh = Pushwoosh || []; Pushwoosh.push(['init', { logLevel: 'error', applicationCode: 'XXXXX-XXXXX', safariWebsitePushID: 'web.com.example.domain', defaultNotificationTitle: 'Pushwoosh', defaultNotificationImage: 'https://yoursite.com/img/logo-medium.png', autoSubscribe: true, subscribeWidget: { enable: false }, userId: 'user_id' }]);</script>