ওয়েব পুশ SDK 3.0
ইন্টিগ্রেশন
Anchor link toPushwoosh Web Push 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>- Web Push 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 ব্রাউজারে পুশ নোটিফিকেশন পাঠান তবে প্রয়োজন 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: true, autoShow: true, // ঐচ্ছিক, পপআপগুলি স্বয়ংক্রিয়ভাবে প্রদর্শন না করে লোড করতে false সেট করুন — নিচে WebPopups মেথডগুলি দেখুন},ওয়েব পপআপ ক্যাম্পেইনগুলো কন্ট্রোল প্যানেলে আপনার কনফিগার করা ওভারলে যেমন প্রোমো, ঘোষণা বা লিড ক্যাপচার ফর্ম প্রদর্শন করে। কাস্টম সাবস্ক্রিপশন পপআপ (subscribePopup)-এর বিপরীতে, যা শুধুমাত্র ওয়েব পুশ অপ্ট-ইন পরিচালনা করে, ওয়েব পপআপ ক্যাম্পেইনগুলো আপনার কনফিগার করা যেকোনো বিষয়বস্তু প্রদর্শন করতে পারে।
কন্ট্রোল প্যানেলে সেটআপের জন্য, ওয়েব পপআপ বোঝা দেখুন।
প্রোগ্রাম্যাটিক নিয়ন্ত্রণের জন্য, WebPopups মেথড এবং ওয়েব পপআপ ইভেন্ট দেখুন।
পুশ সাবস্ক্রিপশন বাটন
Anchor link toআপনার ব্যবহারকারীদের পুশ নোটিফিকেশনের জন্য সাবস্ক্রাইব করতে উৎসাহিত করার জন্য, আমরা আপনার ওয়েবসাইটে একটি পুশ সাবস্ক্রিপশন বাটন প্রয়োগ করার সুপারিশ করি। ব্যবহারকারীর অভিজ্ঞতা উন্নত করুন এবং আরও সাবস্ক্রাইবার পান!
কনফিগারেশন
Anchor link toআপনার ওয়েবসাইটে পুশ নোটিফিকেশন প্রয়োগ শেষ করতে, আপনাকে আমাদের ধাপে ধাপে নির্দেশিকা অনুসরণ করে আপনার Pushwoosh কন্ট্রোল প্যানেলে ওয়েব প্ল্যাটফর্মগুলো কনফিগার করতে হবে:
একটি ভিন্ন স্কোপে সার্ভিস ওয়ার্কার নিবন্ধন করা
Anchor link toকখনও কখনও আপনি সার্ভিস ওয়ার্কার ফাইলটি ওয়েবসাইটের রুট ডিরেক্টরিতে না রেখে একটি সাবডিরেক্টরিতে রাখতে পারেন।
এই ক্ষেত্রে, একটি প্যারামিটার যোগ করে কনফিগারেশনটি পরিবর্তন করুন (ধাপ ৪.৩):
serviceWorkerUrl: “/push-notifications/pushwoosh-service-worker.js”
যেখানে /push-notifications/pushwoosh-service-worker.js হল pushwoosh-service-worker.js ফাইলের পাথ।
ইভেন্ট হ্যান্ডলার
Anchor link toPushwoosh Web SDK 3.0-এ আপনি নির্দিষ্ট ইভেন্টগুলো ট্র্যাক করার জন্য সাবস্ক্রাইব করতে পারেন, অথবা যদি আপনার আর ট্র্যাকিংয়ের প্রয়োজন না থাকে তবে ইভেন্টগুলো থেকে আনসাবস্ক্রাইব করতে পারেন।
Web SDK 3.0 লোড ট্র্যাক করতে, onLoad ইভেন্টটি নিম্নরূপ ফায়ার করুন:
// Load EventPushwoosh.push(['onLoad', (api) => { console.log('Pushwoosh load!');}]);সঠিক Web SDK ইনিশিয়ালাইজেশন ট্র্যাক করতে, onReady ইভেন্টটি ফায়ার করুন:
// Ready EventPushwoosh.push((api) => { console.log('Pushwoosh ready!');});যেকোনো SDK ইভেন্টে সাবস্ক্রাইব বা আনসাবস্ক্রাইব করতে, SDK লোড হওয়ার পরে হ্যান্ডলারগুলো ব্যবহার করুন:
Pushwoosh.push(['onLoad', (api) => { function onEventNameHandler() { console.log('Triggered event: 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('Triggered event: subscribe'); });}]);আনসাবস্ক্রাইব ইভেন্ট
Anchor link toএকটি ডিভাইস নোটিফিকেশন থেকে আনরেজিস্টার হওয়ার পরে কার্যকর হয়।
Pushwoosh.push(['onLoad', (api) => { Pushwoosh.addEventHandler('unsubscribe', (payload) => { console.log('Triggered event: unsubscribe'); });}]);সাবস্ক্রিপশন উইজেট ইভেন্টস
Anchor link toএকটি সাবস্ক্রিপশন প্রম্পট উইজেট প্রদর্শন ট্র্যাক করুন।
Pushwoosh.push(['onLoad', (api) => { // সাবস্ক্রিপশন প্রম্পট উইজেট প্রদর্শনের সময় কার্যকর হয় Pushwoosh.addEventHandler('show-subscription-widget', (payload) => { console.log('Triggered event: show-subscription-widget'); });
// সাবস্ক্রিপশন প্রম্পট উইজেট লুকানোর সময় কার্যকর হয় Pushwoosh.addEventHandler('hide-subscription-widget', (payload) => { console.log('Triggered event: hide-subscription-widget'); });}]);নোটিফিকেশন পারমিশন ডায়ালগ ইভেন্টস
Anchor link toনেটিভ সাবস্ক্রিপশন ডায়ালগ প্রদর্শন ট্র্যাক করুন।
Pushwoosh.push(['onLoad', function (api) { // পারমিশন ডায়ালগ প্রদর্শনের সময় কার্যকর হয় Pushwoosh.addEventHandler('show-notification-permission-dialog', (payload) => { console.log('Triggered event: show-notification-permission-dialog'); });
// তিনটি সম্ভাব্য স্ট্যাটাসের একটি দিয়ে পারমিশন ডায়ালগ লুকানোর সময় কার্যকর হয়: // 1. default - ডায়ালগ বন্ধ // 2. granted - অনুমতি দেওয়া হয়েছে // 3. denied - অনুমতি প্রত্যাখ্যান করা হয়েছে Pushwoosh.addEventHandler('hide-notification-permission-dialog', (payload) => { console.log('Triggered event: hide-notification-permission-dialog', payload.permission); });}]);পারমিশন ইভেন্টস
Anchor link toSDK ইনিশিয়ালাইজেশনের সময় পুশ নোটিফিকেশন পারমিশনের স্ট্যাটাস পরীক্ষা করুন; যখনই এই স্ট্যাটাসের আপডেট হয় তা ট্র্যাক করুন।
Pushwoosh.push(['onLoad', (api) => { // SDK ইনিশিয়ালাইজেশনের সময় কার্যকর হয় যদি 'autoSubscribe: false' থাকে বা/এবং যদি একজন ব্যবহারকারী পুশ নোটিফিকেশন প্রম্পট উপেক্ষা করে। Pushwoosh.addEventHandler('permission-default', (payload) => { console.log('Triggered event: permission-default'); });
// SDK ইনিশিয়ালাইজেশনের সময় কার্যকর হয় যদি নোটিফিকেশন ব্লক করা থাকে বা একবার একজন ব্যবহারকারী পুশ নোটিফিকেশন ব্লক করে। Pushwoosh.addEventHandler('permission-denied', (payload) => { console.log('Triggered event: permission-denied'); });
// SDK ইনিশিয়ালাইজেশনের সময় কার্যকর হয় যদি নোটিফিকেশন অনুমোদিত থাকে বা একবার একজন ব্যবহারকারী পুশ নোটিফিকেশন অনুমোদন করে। Pushwoosh.addEventHandler('permission-granted', (payload) => { console.log('Triggered event: permission-granted'); });}]);পুশ গ্রহণ ইভেন্ট
Anchor link toএকটি ডিভাইসে পুশ ডেলিভারি ট্র্যাক করুন।
Pushwoosh.push(['onLoad', (api) => { // যখন একটি পুশ নোটিফিকেশন প্রদর্শিত হয় তখন কার্যকর হয়। Pushwoosh.addEventHandler('receive-push', (payload) => { console.log('Triggered event: receive-push', payload.notification); });}]);নোটিফিকেশন ইভেন্টস
Anchor link toএকজন ব্যবহারকারী পুশ নোটিফিকেশন খুলেছে নাকি বন্ধ করেছে তা ট্র্যাক করুন।
Pushwoosh.push(['onLoad', (api) => { // যখন একজন ব্যবহারকারী নোটিফিকেশনে ক্লিক করে তখন কার্যকর হয়। Pushwoosh.addEventHandler('open-notification', (payload) => { console.log('Triggered event: open-notification', payload.notification); });
// যখন একজন ব্যবহারকারী একটি পুশ নোটিফিকেশন বন্ধ করে তখন কার্যকর হয়। Pushwoosh.addEventHandler('hide-notification', (payload) => { console.log('Triggered event: hide-notification', payload.notification); });}]);ইনবক্স ইভেন্টস
Anchor link toইনবক্সে পাঠানো নোটিফিকেশন ট্র্যাক করুন।
Pushwoosh.push(['onLoad', (api) => { // ইনবক্স মেসেজ পাওয়ার এবং indexedDB-তে সেভ হওয়ার পরে ServiceWorker দ্বারা কার্যকর হয়। Pushwoosh.addEventHandler('receive-inbox-message', (payload) => { console.log('Triggered event: receive-inbox-message', payload.message); });
// পৃষ্ঠা লোড হওয়ার সময় ইনবক্স স্বয়ংক্রিয়ভাবে আপডেট হওয়ার পরে কার্যকর হয়। Pushwoosh.addEventHandler('update-inbox-messages', (payload) => { console.log('Triggered event: receive-inbox-message', payload.messages); });}]);কাস্টম সাবস্ক্রিপশন পপআপ ইভেন্টস
Anchor link toকাস্টম সাবস্ক্রিপশন পপআপ ইভেন্ট হ্যান্ডলিং সম্পর্কে বিস্তারিত জানতে, অনুগ্রহ করে কাস্টম সাবস্ক্রিপশন পপআপ ইভেন্টস গাইড দেখুন।
ওয়েব পপআপ ইভেন্টস
Anchor link toPushwoosh.push(['onLoad', (api) => { // ওয়েব পপআপ লোড হওয়ার পরে এবং বর্তমান পৃষ্ঠার জন্য স্বয়ংক্রিয় প্রদর্শন পাইপলাইন চলার পরে কার্যকর হয় Pushwoosh.addEventHandler('web-popups-ready', () => { console.log('Triggered event: web-popups-ready'); });
// যখন একটি ওয়েব পপআপ দেখানো হয়, স্বয়ংক্রিয়ভাবে বা webPopups.show() এর মাধ্যমে Pushwoosh.addEventHandler('show-web-popup', (payload) => { console.log('Triggered event: show-web-popup', payload.code, payload.trigger); // trigger: 'auto' | 'api' });
// যখন একটি ওয়েব পপআপ লুকানো হয় Pushwoosh.addEventHandler('hide-web-popup', (payload) => { console.log('Triggered event: hide-web-popup', payload.code, payload.reason); // reason: 'user' | 'api' | 'preempted' });}]);Web Push 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('Multi-registration successful:', response); }) .catch((error) => { console.error('Multi-registration failed:', error); });});প্ল্যাটফর্মের ধরন:
TPlatformSafari(10): Safari প্ল্যাটফর্ম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('success'); } else { console.warn('skipped tags:', skipped); } }) .catch((err) => { console.error('setTags error:', 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()
এই মেথডটি ব্যবহারকারীর পুশ নোটিফিকেশনের অনুমতি অনুরোধ করতে ব্যবহৃত হয়। যদি একজন ব্যবহারকারী ইতিমধ্যে সাবস্ক্রাইব করা থাকে, তবে মেথডটি কার্যকর হওয়া বন্ধ করবে।
যদি একজন ব্যবহারকারী এখনও পুশের জন্য সাবস্ক্রাইব না করে থাকে:
১. পুশ নোটিফিকেশনের জন্য অনুমতি অনুরোধ করা হয়।

২. যদি একজন ব্যবহারকারী নোটিফিকেশন অনুমোদন করে, onSubscribe ইভেন্টটি ট্রিগার হয়।
SDK ইনিশিয়ালাইজেশনের সময় autoSubscribe: true সেট করা থাকলে Pushwoosh.subscribe() স্বয়ংক্রিয়ভাবে কার্যকর হয়।
ইনিশিয়ালাইজেশনের সময় autoSubscribe: false প্যারামিটার ব্যবহার করে যদি আপনি ম্যানুয়ালি একজন ব্যবহারকারীকে পুশের জন্য সাবস্ক্রাইব করতে প্রম্পট করার সিদ্ধান্ত নিয়ে থাকেন তবে এই মেথডটি কল করুন:
<button onclick="Pushwoosh.subscribe()">Subscribe</button><script> Pushwoosh.push(['onSubscribe', (api) => { console.log('User successfully subscribed'); }]);</script>Pushwoosh.unsubscribe()
/unregisterDeviceমেথডটি কার্যকর হয়।onUnsubscribeইভেন্টটি ট্রিগার হয়।
<button onclick="Pushwoosh.unsubscribe()">Unsubscribe</button><script type="text/javascript"> Pushwoosh.push(['onUnsubscribe', (api) => { console.log('User successfully unsubscribed'); }]);</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/falseইনবক্স মেসেজ মেথড
Anchor link tomessagesWithNoActionPerformedCount(): Promise<number>
খোলা মেসেজের সংখ্যা রিটার্ন করে।
Pushwoosh.pwinbox.messagesWithNoActionPerformedCount() .then((count) => { console.log(`${count} messages opened`); });unreadMessagesCount()
অপঠিত মেসেজের সংখ্যা রিটার্ন করে।
Pushwoosh.pwinbox.unreadMessagesCount() .then((count) => { console.log(`${count} messages unread`); });messagesCount(): Promise<number>
মোট মেসেজের সংখ্যা রিটার্ন করে।
Pushwoosh.pwinbox.messagesCount() .then((count) => { console.log(`${count} messages`); });loadMessages(): Promise<Array>
আনডিলেটেড মেসেজের তালিকা লোড করে।
Pushwoosh.pwinbox.loadMessages() .then(() => { console.log('Messages have been loaded'); });readMessagesWithCodes(codes: Array<string>): Promise<void>
Inbox_Ids দ্বারা মেসেজগুলোকে পঠিত হিসাবে চিহ্নিত করে।
Pushwoosh.pwinbox.readMessagesWithCodes(codes) .then(() => { console.log('Messages have been read'); });performActionForMessageWithCode(code: string): Promise<void>
একটি মেসেজে নির্ধারিত অ্যাকশনটি সম্পাদন করে এবং মেসেজটিকে পঠিত হিসাবে চিহ্নিত করে।
Pushwoosh.pwinbox.performActionForMessageWithCode(code) .then(() => { console.log('Action has been performed'); });deleteMessagesWithCodes(codes: Array<string>): Promise<void>
মেসেজগুলোকে মুছে ফেলা হিসাবে চিহ্নিত করে।
Pushwoosh.pwinbox.deleteMessagesWithCodes([code]) .then(() => { console.log('Messages have been deleted'); });syncMessages(): Promise<void>
সার্ভারের সাথে মেসেজ সিঙ্ক্রোনাইজ করে।
Pushwoosh.pwinbox.syncMessages() .then(() => { console.log('Messages have been synchronized'); });WebPopups মেথড
Anchor link toপ্রোগ্রাম্যাটিক ওয়েব পপআপ API-এর জন্য init অবজেক্টে webPopups: {enable: true} প্রয়োজন; এটি Pushwoosh.moduleRegistry.webPopups এর মাধ্যমে উপলব্ধ হয় যখন web-popups-ready ইভেন্টটি ফায়ার হয়।
show(code: string): Promise<boolean>
একটি পপআপ অবিলম্বে দেখায়, সমস্ত প্রদর্শন শর্ত (বিলম্ব, পৃষ্ঠা নিয়ম, ডিভাইস/ভিজিটর টাইপ, ফ্রিকোয়েন্সি ক্যাপিং, ট্রিগার টাইপ) বাইপাস করে। জায়গা করার জন্য ইতিমধ্যে দৃশ্যমান একটি পপআপ বন্ধ করে। যখন পপআপটি দেখানো যায় না তখন রিজেক্ট করার পরিবর্তে false রিজলভ করে।
Pushwoosh.moduleRegistry.webPopups.show('popup_code') .then((shown) => console.log('Popup shown:', 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 ইন্টিগ্রেট করতে, নিচে বর্ণিত ধাপগুলো অনুসরণ করুন।
১. আপনার সার্ভিস ওয়ার্কার ফাইলের পাথ কপি করুন:
if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/service-worker.js') // <- আপনার সার্ভিস ওয়ার্কার ইউআরএল });}তারপর, 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', // <- আপনার সার্ভিস ওয়ার্কার ইউআরএল}]);WebSDK নতুন সার্ভিস ওয়ার্কারটি অবিলম্বে রেজিস্টার করে না; একটি সার্ভিস ওয়ার্কার যখন প্রয়োজন হয় তখন রেজিস্টার করা হয়:
- যখন একটি ডিভাইস একটি পুশ টোকেন পায় (ডিভাইস রেজিস্ট্রেশন বা পুনরায় সাবস্ক্রিপশনের সময়),
- যখন একটি পুশ টোকেন মুছে ফেলা হয় (ব্যবহারকারী বেস থেকে একটি ডিভাইস সরানোর সময়)।
এটি সার্ভার অনুরোধের সংখ্যা কমিয়ে আপনার পৃষ্ঠা লোডিংয়ের গতি বাড়ায়।
ব্রাউজারগুলো একই সময়ে দুটি ভিন্ন সার্ভিস ওয়ার্কার রেজিস্টার করার অনুমতি দেয় না (আরও পড়ুন: https://github.com/w3c/ServiceWorker/issues/921), তাই আপনার PWA সঠিকভাবে কাজ করার জন্য, আপনার কোডবেস এবং Pushwoosh কোডবেসের জন্য একটি সাধারণ সার্ভিস ওয়ার্কার রেজিস্টার করা উচিত।
২. আপনার সার্ভিস ওয়ার্কারে নিম্নলিখিত স্ট্রিংটি যোগ করুন (শুরুতে বা শেষে, এটি কোনো ব্যাপার না):
importScripts('https://cdn.pushwoosh.com/webpush/v3/pushwoosh-service-worker.js' + self.location.search);এইভাবে আপনি আপনার সার্ভিস ওয়ার্কারের জন্য Pushwoosh পরিষেবাগুলোর মাধ্যমে পাঠানো পুশ নোটিফিকেশন গ্রহণ এবং প্রক্রিয়াকরণ সক্ষম করেন।
Google Tag Manager থেকে ইনস্টল করা
Anchor link toPushwoosh SDK ইনিশিয়ালাইজ করতে আপনার Google Tag Manager-এ নিম্নলিখিত কোডটি ব্যবহার করুন। একটি কাস্টম HTML ট্যাগ তৈরি করুন এবং নিচের কোডটি পেস্ট করুন। আপনার Pushwoosh অ্যাপ্লিকেশন কোড, Safari ওয়েবসাইট আইডি, এবং ডিফল্ট নোটিফিকেশন ইমেজ ইউআরএল পরিবর্তন করতে ভুলবেন না।
এছাড়াও উচ্চ ট্যাগ ফায়ারিং অগ্রাধিকার সেট করুন (যেমন: ১০০) এবং এটি সমস্ত পৃষ্ঠা-তে ট্রিগার করুন। একটি স্ক্রিনশটের জন্য নিচে দেখুন।কপি
<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>