الطريقة القياسية لاكتشاف متصفحات الجوال في تطبيق ويب بناءً على طلب http

StackOverflow https://stackoverflow.com/questions/142273

سؤال

لقد بدأنا في السير على طريق دعم متصفح الهاتف المحمول لتطبيق ويب للتجارة الإلكترونية للمؤسسات (يعتمد على Java/Servlet).بالطبع هناك العديد من القرارات التي يتعين اتخاذها، ولكن يبدو لي أن حجر الأساس هو القدرة على اكتشاف متصفحات الهاتف المحمول بشكل موثوق، واتخاذ القرارات بشأن المحتوى الذي سيتم إرجاعه وفقًا لذلك.هل هناك طريقة قياسية لاتخاذ هذا القرار (بسرعة) بناءً على طلب http، ومن الأفضل جمع المزيد من المعلومات حول المتصفح المحدد والجهاز الذي يقدم الطلب (حجم الشاشة، وإمكانيات HTML، وما إلى ذلك؟).

وسأكون ممتنًا أيضًا لأي معلومات تكميلية قد تكون مفيدة من شخص سلك هذا المسار المتمثل في استخدام تطبيق ويب مؤسسي واسع النطاق موجود وتصميم دعم متصفح الهاتف المحمول من جانب التطوير.

[عدل] أنا بالتأكيد أفهم رأس الطلب والمعلومات المتعلقة بقاعدة بيانات وكلاء المستخدم القياسيين تعد مساعدة كبيرة.بالنسبة لأولئك الذين يتحدثون عن خصائص رأس الطلب "الأخرى"، إذا كان بإمكانك تضمين اسم/مورد قيم مماثل، فسيكون ذلك بمثابة مساعدة كبيرة.

[تحرير] اقترح العديد من المستخدمين حلولاً تتضمن الاتصال عبر السلك ببعض خدمات الويب التي ستقوم بالكشف.على الرغم من أنني متأكد من أن هذا يعمل، إلا أنه ليس حلاً جيدًا لموقع التجارة الإلكترونية للمؤسسة لسببين:1) السرعة.إن الاتصال عبر السلك لكل طلب صفحة إلى جهة خارجية سيكون له آثار هائلة على الأداء.2) التبعية/القانونية.لقد ربطنا وقت استجابة موقعنا الإلكتروني والوظائف الرئيسية بخدمتهم، وهو أمر فظيع لأسباب قانونية وأسباب تتعلق بالمخاطر.

هل كانت مفيدة؟

المحلول

ألن تكون الطريقة القياسية هي التحقق من وكيل المستخدم؟وهنا أ قاعدة بيانات وكلاء المستخدم يمكنك استخدامها للكشف عن متصفحات الجوال.

نصائح أخرى

ذكرت إجابة David باستخدام WURFL - وهو على الأرجح خيارك الأفضل.كن حذرًا، ومع ذلك، فإن معدل النجاح عادة ما يكون حوالي 60٪ (من تجربتي وخبرة الآخرين).مع تغيير شركات الاتصالات لـ UA باستمرار وكمية ملفات تعريف الأجهزة الموجودة (60.000+؟)، لا توجد طريقة آمنة للحصول على جميع البيانات الصحيحة التي تريدها.

فقط القليل من التحذير قبل الاعتماد بشكل كبير على قاعدة بيانات الجهاز.سأحاول إبقاء خيارات المستخدم مفتوحة من خلال السماح له بتغيير خيارات الجلسة في حالة تخميني الخاطئ.

يمكنك استخدام التحديث للكشف عن قدرات المتصفح

في حين أنه يمكنك اكتشاف متصفح الهاتف المحمول من خلال وكيل المستخدم الخاص به، فقد أظهرت حرب المتصفحات على منصة الكمبيوتر الشخصي أن استنشاق وكلاء المستخدم ليس بالأمر الجيد حقًا.

ما يجب فعله بشكل مثالي هو أنه يجب تطبيق أنماط محددة بناءً على نوع الوسائط أو أنه يجب إرسال إجابة مختلفة بناءً على رأس آخر غير وكيل المستخدم - مثل رأس القبول الذي يخبرنا بنوع المحتوى الذي يفضله المتصفح .

في الوقت الحالي، قد يكون كافيًا ترميز موقع يعمل مع iPhone ومع Opera من خلال استنشاق المتصفح - ولكن Google Android سيأتي في أي لحظة الآن، وهناك العديد من الهواتف المحمولة الأخرى التي ستحتوي على وظائف متصفح قريبة من وظائف iPhone في المستقبل القريب وسيكون من الضائع تطوير موقع ويب للجوال لا يدعم تلك الأجهزة بقدر الإمكان من الصفر.

بعد أيام من البحث عن الطريقة الصحيحة لاكتشاف جهاز محمول، قررت أن أبقي الأمر بسيطًا [غبيًا] وسأضع زر "موقع الجهاز المحمول" في صفحة الفهرس الخاصة بي....انها نقرة واحدة فقط بعيدا!

هذا المقال (و لها متابعة) يبدو لطيف.

كشف متصفحات الجوال - مقتطفات بلغات البرمجة المختلفة.

يقوم تكوين Apache التالي خفيف الوزن بعمل جيد جدًا ويتذكر تفضيلات المستخدم إذا كان يفضل إصدار الكمبيوتر الشخصي

<VirtualHost (your-address-binding)>   

  (your-virtual-host-configuration)       

  RewriteEngine On     
  RewriteCond %{QUERY_STRING} !ui=pc
  RewriteCond %{HTTP_COOKIE} !ui=pc
  RewriteCond %{HTTP_USER_AGENT} "^.*(iphone|ipod|ipad|android|symbian|nokia|blackberry| rim |opera mini|opera mobi|windows ce|windows phone|up\.browser|netfront|palm-|palm os|pre\/|palmsource|avantogo|webos|hiptop|iris|kddi|kindle|lg-|lge|mot-|motorola|nintendo ds|nitro|playstation portable|samsung|sanyo|sprint|sonyericsson|symbian).*$" [NC,OR]

  RewriteCond %{HTTP_USER_AGENT} "^(alcatel|audiovox|bird|coral|cricket|docomo|edl|huawei|htc|gt-|lava|lct|lg|lynx|mobile|lenovo|maui|micromax|mot|myphone|nec|nexian|nook|pantech|pg|polaris|ppc|sch|sec|spice|tianyu|ustarcom|utstarcom|videocon|vodafone|winwap|zte).*$" [NC] 

  RewriteRule /(.*) http://bemoko.com/$1 [L]

  RewriteCond %{QUERY_STRING} "ui=pc"
  RewriteRule ^/ - [CO=ui:pc:(your-cookie-domain):86400:/]
  RewriteCond %{QUERY_STRING} "ui=default"
  RewriteRule ^/ - [CO=ui:default:(your-cookie-domain):86400:/]
</VirtualHost>

مزيد من المعلومات الأساسية حول هذا @ http://bemoko.com/training.team/help/team/pc-to-mobile-redirect

أقترح نظام كشف مجاني يعتمد على uaprof ووكيل المستخدم:http://www.mobilemultimedia.beيجب أن يكون UAprof هو المفتاح الأساسي للاكتشاف عندما يكون متاحًا حيث يوجد عادةً العديد من وكلاء المستخدم لنفس uaprof.إذا كنت تريد إدارة هذا بنفسك، فيجب عليك الانتقال إلى Wurfl لأنه يمكنك تنزيل قاعدة البيانات بأكملها وإدارتها محليًا بنفسك.

عندما كان لدي حاجة مماثلة مؤخرا، وجدت هذا الرمز الذي يستخدم HTTP_X_WAP_PROFILE, HTTP_ACCEPT, ، و HTTP_USER_AGENT لتحديد المتصفح على أنه محمول أو غير محمول.إنه PHP ولكن يمكن تحويله بسهولة إلى أي شيء تحتاجه (لقد قمت بتنفيذه في VBScript لـ ASP الكلاسيكي).

ومن المفارقات أنه اتضح أنني لم أنتهي من استخدام الكود لأننا قررنا توفير عناوين URL محددة لمستخدمي الهاتف المحمول وغير المحمول، ولكنه بالتأكيد نجح عندما كنت أختبره ...

سوف تحصل على معظم المعلومات مثل المتصفح والجهاز واللغات المقبولة والتنسيقات المقبولة وما إلى ذلك من رأس الطلب.وكيل المستخدم المذكور أعلاه هو جزء من رأس الطلب.

حسنًا، إليك إجابة بسيطة للغاية - ماذا عن السماح للمستخدم باتخاذ القرار؟عند تسجيل دخولك إلى التطبيق الخاص بك، قم بتوفير رابط لموقع الهاتف المحمول.على موقع الهاتف المحمول، قم بتوفير رابط "العودة إلى الموقع الرئيسي" - جرب www.fazolis.com على جهازك المحمول - إنهم يقومون بعمل جيد في هذا الأمر.

ثم، على الرابط إلى موقع الهاتف المحمول من موقع المتصفح، قم بتسجيل "تصويتهم" ووكيل المستخدم الخاص بهم.يمكنك بناء قائمة موثوقة خاصة بك من لك العملاء الذين يريدون موقع الهاتف المحمول.استخدم هذا مقترنًا بالمواصفات الموجودة على حجم الشاشة لهذه الأجهزة المحمولة، ويمكنك بناء منطق جيد جدًا للحصول على تجربة مستخدم مُرضية.لن أنشر أبدًا إلى مصدر شبكة لشيء أساسي مثل هذا.

وعلى "موقع الهاتف المحمول" الخاص بك - إذا كتبت تطبيقك بشكل جيد لغويًا، فمن المفترض أن تكون قادرًا على تقديم موقع واحد لكل من الهاتف المحمول والمتصفح مقابل موقع الويب الخاص بك.الاضطرار إلى كتابة مجموعتين منفصلتين من الصفحات.مجرد شيء للتفكير فيه - وهذا يستحق المزيد من التفكير والجهد لتوفير الوقت لاحقًا.

لا أستطيع رؤيته منشورًا هنا، ولكن هناك خيار آخر أبحث عنه حاليًا www.detectmobilebrowser.com

أسهل طريقة هي إنشاء مصفوفة تحتوي على علامات عادية مرتبطة بمتصفحات الهاتف المحمول.يجب أن يكون لدى معظم وكلاء مستخدم الهاتف المحمول على الأقل الكلمة mobile، mini، nokia، java ME، android، iphone، mobile OS، وما إلى ذلك.إذا كان أي منها مطابقًا لوكيل المستخدم، باستخدام php strpos، قم بطباعة زر الهاتف المحمول أعلى الصفحة.اترك للمستخدم الاختيار.أحب الموقع الكامل لأن متصفح الهاتف المحمول الخاص بي يمنحني نفس التجربة، باستثناء أنني أحتاج إلى التكبير/التصغير أو التمرير في معظم الأوقات.

سيكون عليك التحقق من سلسلة وكيل المستخدم من خلال قائمة محددة مسبقًا، مثل هذه

يمكنك استخدام إحدى خدمات الويب لاكتشاف تصفح الهاتف المحمول مثل handsetdetection.com.

والحقيقة هي أن مجرد الاعتماد على وكيل المستخدم ليس جيدًا بما يكفي لاكتشاف متصفحات الهاتف المحمول.

بالتأكيد، منذ سنوات مضت، كان بإمكانك البحث عنه بحثًا عن سلاسل معينة وتخمين أنه هاتف Nokia أو شيء من هذا القبيل، ولكن الآن هناك الكثير من الهواتف الموجودة هناك، والعديد منها تتظاهر بأنها أشياء ليست كذلك، مما يعني أن هناك حاجة إلى شيء أكثر تعقيدًا.

لقد وجدت موقعًا رائعًا على نص الرابطوالذي يعتمد على نفس الحل الذي تستخدمه MTV لجميع مواقع الويب الخاصة بالهواتف المحمولة.إنها جيدة حقًا لأنها تحتوي على لغة ترميزية مستقلة عن الجهاز ولكن الأهم من ذلك أنها توفر خدمة ويب للاتصال بـ isMobileDevice().

ما عليك سوى إلقاء نظرة على الدليل ثم "كيف يعمل".

لقد كنت أستخدمه لمواقع عملائي ولم أجد بعد متصفحًا للجوال لا يكتشفه بدقة.المسببة للعمى تماما!

ركضت للتو عبر اكتشاف الأجهزة والميزات على الويب عبر الهاتف المحمول مع هذه المحتويات:

  1. استخدام اكتشاف الأجهزة والميزات لتحسين تجربة المستخدم على ويب الهاتف المحمول
  2. مقدمة للكشف عن الأجهزة
  3. طرق تصميم مواقع الجوال
    1. لا تفعل شيئا
    2. توفير موقع عام للجوال
    3. تصميم مع المحمول والتكيف في الاعتبار
  4. استراتيجيات تكييف المحتوى وتجميع الأجهزة
    1. تجميع الأجهزة
    2. التكيف مع المحتوى
  5. تقليل الحاجة إلى التكيف في المقام الأول
  6. الأساليب الشائعة للكشف عن الأجهزة
    1. التكيف من جانب الخادم
    2. التكيف من جانب العميل
    3. وكيل المستخدم من جانب الخادم (UA) والبحث عن الرأس
    4. سلسلة UA من جانب الخادم مقترنة بالبحث في قاعدة بيانات الجهاز
    5. الكشف عن ملفات تعريف وكيل المستخدم (UAProf) من جانب الخادم
    6. الكشف على أساس تقنية جافا سكريبت
    7. أنواع وسائط CSS
    8. استعلامات الوسائط CSS
  7. أفضل الممارسات الإضافية
    1. إعادة التوجيه + الرابط اليدوي
    2. صفحة الهبوط + الرابط اليدوي
  8. صفحة عينة قابلة للتحميل

يمكنك استخدام واجهات برمجة تطبيقات WURFL لاكتشاف نوع الجهاز

http://wurfl.sourceforge.net/wurfl_schema.php

أو التحديث للكشف عن قدرات المتصفح

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top