ওয়েব পুশ 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: true, 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 ওয়েব SDK 3.0-এ আপনি নির্দিষ্ট ইভেন্টগুলি ট্র্যাক করার জন্য সাবস্ক্রাইব করতে পারেন**,** অথবা যদি আর ট্র্যাক করার প্রয়োজন না থাকে তবে ইভেন্টগুলি থেকে আনসাবস্ক্রাইব করতে পারেন।
ওয়েব SDK 3.0 লোড ট্র্যাক করতে, onLoad ইভেন্টটি নিম্নরূপ ফায়ার করুন:
// Load EventPushwoosh.push(['onLoad', (api) => { console.log('Pushwoosh load!');}]);সঠিক ওয়েব SDK ইনিশিয়ালাইজেশন ট্র্যাক করতে, onReady ইভেন্টটি ফায়ার করুন:
// Ready EventPushwoosh.push((api) => { console.log('Pushwoosh ready!');});যেকোনো SDK ইভেন্টে সাবস্ক্রাইব বা আনসাবস্ক্রাইব করতে, SDK লোড হওয়ার পরে হ্যান্ডলারগুলি ব্যবহার করুন:
Pushwoosh.push(['onLoad', (api) => { function onEventNameHandler() { console.log('Triggered event: event-name!'); }
// To subscribe to an event: Pushwoosh.addEventHandler('event-name', onEventNameHandler)
// To unsubscribe from an event: 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); // ট্রিগার: 'auto' | 'api' });
// যখন একটি ওয়েব পপআপ লুকানো হয় তখন কার্যকর হয় Pushwoosh.addEventHandler('hide-web-popup', (payload) => { console.log('Triggered event: hide-web-popup', payload.code, payload.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একটি নম্বর ট্যাগের মান বৃদ্ধি করতে, 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()">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-এর জন্য init অবজেক্টে webPopups: {enable: true} প্রয়োজন; এটি 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 ইন্টিগ্রেট করতে, নিচে বর্ণিত ধাপগুলি অনুসরণ করুন।
1. আপনার সার্ভিস ওয়ার্কার ফাইলের পাথ কপি করুন:
if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/service-worker.js') // <- your service worker 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', // <- your service worker 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 পরিবর্তন করতে ভুলবেন না।
এছাড়াও উচ্চ ট্যাগ ফায়ারিং অগ্রাধিকার (যেমন: 100) সেট করুন এবং এটি সমস্ত পৃষ্ঠায় ট্রিগার করুন। একটি স্ক্রিনশটের জন্য নিচে দেখুন।
<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>