ওয়েব পুশ 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 ব্রাউজারে পুশ নোটিফিকেশন পাঠান তবেই প্রয়োজন 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 কন্ট্রোল প্যানেলে ওয়েব প্ল্যাটফর্মগুলি কনফিগার করতে হবে:
একটি ভিন্ন স্কোপে সার্ভিস ওয়ার্কার রেজিস্টার করা
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' });}]);ওয়েব পুশ 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একটি Number ট্যাগের মান বৃদ্ধি করতে, operation প্যারামিটারটি ‘increment’ মান সহ নিম্নরূপ ব্যবহার করুন:
Pushwoosh.push((api) => { api.setTags({ 'Tag 1': { operation: 'increment', value: 1 } })});ট্যাগ মান যোগ করুন
Anchor link toবিদ্যমান List ট্যাগে নতুন মান যোগ করতে, operation প্যারামিটারটি ‘append’ মান সহ নিম্নরূপ ব্যবহার করুন:
Pushwoosh.push((api) => { api.setTags({ 'Tag 3': { operation: 'append', value: ['Value3'] } })});ট্যাগ মান সরান
Anchor link toএকটি List ট্যাগ থেকে একটি মান সরাতে, 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/falseInboxMessages পদ্ধতি
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 উপলব্ধ থাকে যখনই উইজেটটি লোড হয়, যা ডিফল্ট (উপরে দেখুন)। web-popups-ready ইভেন্টটি ফায়ার হওয়ার পরে Pushwoosh.moduleRegistry.webPopups এর মাধ্যমে এটি অ্যাক্সেস করুন।
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') // <- আপনার সার্ভিস ওয়ার্কার 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 কোডবেসের জন্য একটি সাধারণ সার্ভিস ওয়ার্কার রেজিস্টার করা উচিত।
২. আপনার সার্ভিস ওয়ার্কারে নিম্নলিখিত স্ট্রিংটি যোগ করুন (শুরুতে বা শেষে, এটি কোনো ব্যাপার না):
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 ওয়েবসাইট আইডি, এবং ডিফল্ট নোটিফিকেশন ছবির 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>