این روز ها تمام پروژه های تحت وب یک نسخه دسکتاپ و نسخه موبایل دارند . زمانی که کاربران و بازدیدکنندگان وبسایت شما را از طریق تلفن همراه می بینند باید به نسخه موبایل وبسایت هدایت (redirect) شوند. ما یک کلاس user agent برای تشخیص دستگاه موبایل در php و همچنین تبلت نوشتیم .در این تکنیک از user agent ها کمک گرفتیم
User Agent چیست ؟
وبسایتها رابط کاربری مجزایی را برای نمایش محتوای وب سایت خود روی گوشیهای موبایل و تبلت ها ارائه کرده اند.هر مرورگری یه پارامتری داره بنام USER AGENT (بطور خلاصه UA) که مثل شناسنامه ی مرورگر است و اطلاعاتی از سیستم عامل ، نوع مرورگر ، موتور رندر مرورگر و نوع دستگاهی که این مرورگر روش نصب هست را ارائه میده. شما بعنوان برنامه نویس سایت می توانید هنگامی که کلاینت، صفحه ای را درخواست میکند ، همون اول کار با دستوراتی که در asp.net و php و بقیه زبانها وجود دارد، user agent کاربر را تشخیص دهید و بنا به نوع مرورگر کاربر، صفحات گوناگونی رو برایش response کنید.
کلاس user agent
کلاس user agent , یک کلاس ساده php است که به شما در تشخیص دستگاه موبایل در php کمک می کند .شما باید متد را از این کلاس صدا بزنید تا بررسی کند آیا بازدیدکننده شما از گوشی موبایل , کامپیوتر دسکتاب یا تبلت استفاده می کند و هرکدام را به نسخه مناسب خود هدایت می کند.
نحوه استفاده
شما کافیست که فایل های مورد نیاز مربوط به کلاس ها را از باکس دانلود , دریافت کنید . فایل user_agents_config.php شامل تمام user agent ها است و فایل user_agent.php هم کلاس userAgent را در بر دارد . همچنین حتما باید هر دو فایل در یک دایرکتری قرار بدید .
اول از همه شما باید فایل user_agents.php را فراخوانی و یک آبجکت از userAgent بسازید .حالا فقط تابع is_mobile() را برای بررسی بازدیدکننده صدا می زنیم . اگر تابع is_mobile() مقدار true را برگرداند , بازدیدکننده از گوشی موبایل است در غیر اینصورت مقدارfalse را برمیگرداند .
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php //include file include_once 'user_agent.php'; //create an instance of UserAgent class $ua = new UserAgent(); //if site is accessed from mobile, then redirect to the mobile site. if($ua->is_mobile()){ header("Location:http://m.netparadis.com"); exit; } ?> |
می توانید کد بالا را در اول صفحه فرود سایت خود در ورژن دسکتاپ برای تشخیص دستگاه موبایل در php استفاده کنید.
برای دریافت سورس کد کامل از از باکس دانلود استفاده کنید
موفق و پیروز باشید.
سلام استاد، چرا توی متن فرمودین فایل user_agents_config.php فراخوانی بشه اما توی متن user_agent.php را فراخوانی کردید؟
سلام. اصلاح شد
سلام
وقتی سایت رو توسط گوشی باز میکنیم چطور کدی بنویسیم که در موبایل به جای نسخه موبایل سایت رو در حالت نسخه دسکتاپ ببینیم؟ البته در فایرفاکس و کروم گزینه Desktop site هست که اگه فعال کنیم سایت رو در حالت دسکتاپ مشاهده میکنیم نه در حالت موبایل ولی من میخام به جای اینکه کاربر تنظیمات مرورگر رو بزنه این کار رو سایت خودش با php یا javascript انجام بده. مثل بیشتر سایتها دو گزینه دارند مشاهده سایت در حالت موبایل و نسخه دسکتاپ
سلام. این دکمه ها که در بعضی سایت ها هست فقط مقدار تگ meta viewport رو تغییر می دند و میتونید با این تابع js این کارو انجام بدید
این تابع رو باید به عنوان onclick یه دکمه قرار بدید تا بتونه تغییر کنه :
سلام آیا برای تشخیص نوع صفحه نمایش، mobile detect رو باید در همه صفحات سایت فراخوانی کرد؟ و اینکه آیا برای هر صفحه سایت، یک صفحه برای نسخه دسکتاپ و یک صفحه برای نسخه موبایل طراحی کنیم؟
سلام. بله مثلا در یک فایلی مثلا config.php که اطلاعات دیتابیس هست یا فایلی مثل header قرار بدید که این فایل ها چون کدهاشون در تمام صفحات استفاده میشه پس کد تشخیص هم در همه جا اجرا میشه و نیاز نیست در همه صفحات جداگانه اضافه کنید
سلام اقا یه سوال یه سایتی رو واردش که میشم میگه فقط با گوشی امکان دسترسی به این بخش رو دارید اومدم با شبیه ساز های موجود کار کردم بازم همینجور بود حتی خودم یکی ساختم بازم تشخیص میداد موضوع چیه چه فرقی بین یه موبایل و یه شبیه ساز اندروید هست که تشخیص میده؟! چطوری میتونم اینو رو سایت خودم پیاده کنم؟
سلام.
دقیق اطلاع ندارم شاید از user-agent مروگر تشخیص داده میشه یا بصورت pwa هست