در آموزش ارسال پوش نوتیفیکیشن در php قصد داریم به شما نحوه ارسال اعلان با داده های داینامیک به سمت مرورگر کاربر را یاد بدیم.
پوش نوتیفیکیشن ها در وب (Web Push Notification) یک ابزار امیدوارکننده برای افزایش ترافیک سایت و نرخ تبدیل است.
این یک روش جایگزین برای فقط جاوااسکریپت است با این تفاوت که دارای پردازش سمت سرور توسط PHP است و محتوای ناتیف را از PHP دریافت می کند.
بنابراین می توان به جای محتوای هاردکد شده از هر داده ای داخل دیتابیس یا فایل برای ارسال نوتیفیکیشن (notification) استفاده کرد.
درباره مثال ارسال پوش نوتیفیکیشن در php
در این مثال ما یک پوش نوتیفیکیشن روی مرورگر را نمایش میدیم. این نوتیفیکیشن ها طبق کانفیگ تعیین شده هر ۱۰ دقیقه یکبار ارسال می شوند و بعد ارسال خودکار بسته می شود.
زمان نمایش نوتیفیکیشن در مرورگر نیز ۵ دقیقه مشخص کردیم.
نمونه (instance) نوتیفیکیشن ها سمت کلاینت ساخته و هندل می شوند و از تابع setTimeout
جاواسکریپت برای مدیریت زمان نمایش و مخفی کردن اعلان بهره می بریم.
درخواست Ajax ارسال پوش نوتیفیکیشن در php
در این کد ,HTML اسکریپت اجرای حلقه ارسال پوش نوتیفیکیشن را در بازه های زمانی مشخص شده قرار دادیم.
تابع pushNotify()
درخواست ارسال پوش نوتیفیکیشن را با Ajax به PHP میفرستد و PHP محتوای نوتیفیکیشن را بصورت آبجکت json
برگشت می دهد.
تابع هندلر برگشتی AJAX نیز محتوای JSON را خوانده و نوتیفیکیشن را ایجاد میکند.
در این اسکریپت, تابع createNotification()
اعلان را ارسال میکند.
با کلیک روی نوتیفیکیشن ارسالی می توان آدرس URL که داخل JSON بود را در مرورگر باز کرد.
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
<!DOCTYPE html> <html> <head> <title>Web Push Notifications in PHP</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="style.css" type="text/css" rel="stylesheet" /> <script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script> </head> <body> <div class="phppot-container"> <h1>Web Push Notification using PHP in a Browser</h1> <p>This example shows a web push notification from PHP on browser automatically every 10 seconds. The notification also closes automatically just after 5 seconds.</p> </div> <script> // enable this if you want to make only one call and not repeated calls automatically // pushNotify(); // following makes an AJAX call to PHP to get notification every 10 secs setInterval(function() { pushNotify(); }, 10000); function pushNotify() { if (!("Notification" in window)) { // checking if the user's browser supports web push Notification alert("Web browser does not support desktop notification"); } if (Notification.permission !== "granted") Notification.requestPermission(); else { $.ajax({ url: "push-notify.php", type: "POST", success: function(data, textStatus, jqXHR) { // if PHP call returns data process it and show notification // if nothing returns then it means no notification available for now if ($.trim(data)) { var data = jQuery.parseJSON(data); console.log(data); notification = createNotification(data.title, data.icon, data.body, data.url); // closes the web browser notification automatically after 5 secs setTimeout(function() { notification.close(); }, 5000); } }, error: function(jqXHR, textStatus, errorThrown) { } }); } }; function createNotification(title, icon, body, url) { var notification = new Notification(title, { icon: icon, body: body, }); // url that needs to be opened on clicking the notification // finally everything boils down to click and visits right notification.onclick = function() { window.open(url); }; return notification; } </script> </body> </html> |
کد PHP آماده سازی محتوای داینامیک نوتیفیکیشن بصورت JSON
این کد محتوای نوتیفیکیشن را از سمت سرور دریافت می کند. اینحا می توانید یک اتصال به دیتابیس برقرار کنید و هر داده ای را دریافت و برگشت بدید.
push-notify.php
1 2 3 4 5 6 7 8 9 10 |
<?php // if there is anything to notify, then return the response with data for // push notification else just exit the code $webNotificationPayload['title'] = 'Push Notification from PHP'; $webNotificationPayload['body'] = 'PHP to browser web push notification.'; $webNotificationPayload['icon'] = 'https://phppot.com/badge.png'; $webNotificationPayload['url'] = 'https://phppot.com'; echo json_encode($webNotificationPayload); exit(); ?> |
همانطور که دیدید به راحتی توانستیم ارسال پوش نوتیفیکیشن در php را با محتوای داینامیک بسازیم که در وبسایت های مختلف می توانید از آن استفاده کنید.
موارد استفاده پوش نوتیفیکیشن ها
- پوش نوتیفیکیشن ها با ارسال محتوای مرتبط به کاربران عضو شده باعث افزایش ترافیک می شود
- یک راه حرفه ای برای ارسال تبلیغات و ایجاد فروش است
- به شما کمک می کند که همیشه در ذهن مخاطب بمانید و برند/وب سایت تان فراموش نشود
جمع بندی آموزش ارسال پوش نوتیفیکیشن در php
همانطور که دیدید به راحتی توانستیم هر نوع محتوایی را بصورت داینامیک از سمت PHP دریافت و با قابلت شی Notification
در جاواسکریپت که یک API جدید برای مرورگر است پوش نوتیفیکیشن وب را ارسال کنیم.
ما بازه زمانی ۱۰ دقیقه را مشخص کردیم که می توانید این را بصورت یک روزه یا سه روز در هفته هم مشخص کنید تا بتوانید پیشنهاد های ویژه یا مقالات و محصولات جدید را به کاربران ارسال کنید و به اینصورت از این ابزار مدرن بازاریابی بتوانید ترافیک و فروش بیشتری را برای سایت ایجاد کنید.
امیدوارم از آموزش ارسال پوش نوتیفیکیشن در php نهایت استفاده را برده باشید.
هر سوال یا مشکلی در پیاده سازی آموزش برای ساخت نوتیفیکیشن سایت داشتید حتما از بخش نظرات بفرستید تا راهنمایی کنم.
سورس کد کامل آموزش ارسال پوش نوتیفیکیشن در php را هم میتوانید از بخش دانلود باکس دریافت کنید.
موفق و پیروز باشید.
سلام وقت بخیر
من میخوام با فایر بیس نوتیفکیشن به کاربر ارسال کنم قمست اندروید و شخص دیگه ای انجام داده من باید فقط یه قسمت تو دیتا بیس رو به صورت نوتی ارسال کنم میشه یه راهنمایی کنید
سلام. با این کدها میتونید ارسال کنید:
https://github.com/kreait/firebase-php
سلام مجدد خب کدها خیلی زیاد بودن باید از قسمت مخصوص massage استفاده کنم و بدون تغییر تو مسیرپروژه قراربدم؟
ببخشید زیاد سوال میکنم جدا از اینکه دوست دارم کارم راه بیوفته دوست دارم واقعا یاد بگیرم من php mvc کار کردم در حد زیاد تجریه ندارم و متاسفانه نتوستم راهنمای خوبی برای خودم پیدا کنم شما دوره آموزشی ندارین؟
کلی سوال های بی جواب دارم
سلام. بله درسته
از این لینک میتونید یاد بگیرید:
الگوی MVC در PHP
سلام.
یعنی این روش جایگزین سرویس هایی مثل نجوا و… میشه؟
سلام. اون سرویس های امکانات زیادی مثل امارگیری و ارسال های پیشرفته دارن ولی بله بیس کار همون هست
با بسته شدن پنجره، از کار میافتد.
درسته ؟ چگونه می توان جلوگیری کرد ؟
سلام.
بله و برای حل این مشکل نیاز به پیاده سازی service ورکر و یک سرویس واسط notif api هست که با این پروژه به راحتی بدون نوشتن سرویس و فقط با api در صورتی که صفحه سایت بسته شد هم به مرورگر کاربر ناتیف بفرستید (کاربر باید پرمیشن این کار رو از مرورگر بده که توسط اسکریپت خودکار براش پرامپت میشه)
پروژه رایگان php وب پوش ناتیف
https://github.com/rijoshrc/Web-Push-Notifications-PHP-
کد api رایگان
https://web-push-codelab.glitch.me
سلام نمیشه کاری کرد که api نخواهد و از روی سرور خودمون بتونه بخونه
سلام
این که api نیست و همه چیز از سرور خودتون هست