اذهب إلى المحتوى
  • 0

كيفية معرفة نوع الجهاز ونظام التشغيل عبر JavaScript؟

Emad Saif

السؤال

أريد أن أتحقق من نوع الجهاز المستعمل والتأكد إن كان يستعمل iOS أو أندرويد.

كيف يمكن القيام بهذا الأمر في JavaScript؟ وهل توجد مكتبة لتسهيل هذا الأمر؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يمكنك الوصول إلى هذه المعلومات من خلال المتصفح عن طريق استخدام navigator، فإذا حاولت طباعته ستجد المعلومات التالية:

console.log(navigator);

# platform = Win32
# appCodeName = Mozilla
# appName = Netscape
# appVersion = 5.0 (Windows; en-US)
# language = en-US
# mimeTypes = [object MimeTypeArray]
# oscpu = Windows NT 5.1
# vendor = Firefox
# vendorSub = 1.0.7
# securityPolicy =
# userAgent = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
....

وبعدها يمكنك تحديد نوع المتصفح ونظام التشغيل من الخاصيات platform، vendor, appCodeName.

أما إذا كنت تقصد تحديد نوع الجهاز المستعمل لمستخدم ما ضمن خادم ويب، فيوجد العديد من المكتبات المساعدة حسب ما لغة البرمجة أو إطار العمل الذي تستخدمه سواء كان PHP أو Javascript Node.JS

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1
function getOS() {
    
    var userAgent = window.navigator.userAgent
    var platform = window.navigator.userAgentData.platform || window.navigator.platform
    var macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K']
    var windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE']
    var iosPlatforms = ['iPhone', 'iPad', 'iPod']
    var os = null;
    
    if (macosPlatforms.indexOf(platform) !== -1) {
        os = 'Mac OS';
    } else if (iosPlatforms.indexOf(platform) !== -1) {
        os = 'iOS';
    } else if (windowsPlatforms.indexOf(platform) !== -1) {
        os = 'Windows';
    } else if (/Android/.test(userAgent)) {
        os = 'Android';
    } else if (/Linux/.test(platform)) {
        os = 'Linux';
    }
    
    return os;
}
	

يعتمد الأمر كثيراّ على نوع المتصفح و حداثة نسخته. المعلومات التي تخص النظام التشغيلي وتفاصيل اكثر تعقيداً تستطيع الوصول أليها بصورة أساسية من خلال window.navigator ولكن كما وضحنا سلفاً تختلف طريقة الحصول على هذه المعلومات من متصفح لأخر وأحيانا بين تختلف الطريقة بين نسخ نفس المتصفح. الدالة أعلاه تتيح لك تحديد نوع النظام التشغيلي لطيف واسع من الأنظمة وأكثرها شيوعا. 

تم التعديل في بواسطة علي محسن
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

JavaScript  غير قادرة على الحصول على عنوان IP للمستخدم عند التشغيل في المتصفح. ومع ذلك ، من الممكن القيام بذلك من خلال استدعاء API من جانب الخادم. باستخدام خدمة API تسمى VisitorAPI ، يمكنك تحقيق ذلك في سطرين فقط من JavaScript.

يُرجع VisitorAPI عنوان IP الخاص بالمستخدم ، والموقع ، والعملات ، واللغات ، ومعلومات الجهاز من خلال استدعاء REST API. الكود التالي يقوم بتحميل API:

var VisitorAPI=function(t,e,a){var s=new XMLHttpRequest;s.onreadystatechange=function(){var t;s.readyState===XMLHttpRequest.DONE&&(200===(t=JSON.parse(s.responseText)).status?e(t.data):a(t.status,t.result))},s.open("GET","https://visitorapi-dev.uc.r.appspot.com/api/?pid="+t),s.send(null)};

بمجرد تحميل واجهة برمجة التطبيقات ، يمكنك إجراء استدعاء لواجهة برمجة التطبيقات بالصيغة التالية:

new VisitorAPI(projectID, successHandler, errorHandler);

هناك 3 معلمات في استدعاء API:

  • projectID: هذا هو المعرف الفريد لمشروع VisitorAPI الخاص بك والذي يمكنك إنشاؤه في VisitorAPI UI مجانًا.
  • SuccessHandler: هذه وظيفة تعالج بيانات الزائر عندما يتم استدعاء واجهة برمجة التطبيقات بنجاح. انظر تنسيق بيانات الاستجابة هنا.
  • errorHandler: هذه وظيفة تعالج رمز الخطأ ورسالة الخطأ عندما ترجع استدعاء API خطأ. يمكن أن تحتوي الوظيفة على معلمتين: رمز الخطأ ورسالة الخطأ.

يوجد أدناه مثال لطباعة بيانات المستخدم في وحدة تحكم المتصفح:

VisitorAPI(
    "om61tWZOjuBBPxTdDlpy",
    function(data){console.log(data)},
    function(errorCode, errorMessage){console.log(errorCode, errorMessage)}
);

ستقوم بطباعة كائن JSON مشابه للمثال أدناه بناءً على عنوان IP الحقيقي للمستخدم الحالي وبيانات الجهاز.

{
    "ipAddress":"118.211.184.103",
    "countryCode":"AU",
    "countryName":"Australia",
    "currencies":["AUD"],
    "languages":["eng"],
    "region":"nsw",
    "city":"sydney",
    "cityLatLong":"-33.868820,151.209295",
    "browser":"Chrome Mobile iOS",
    "browserVersion":"100",
    "deviceBrand":"Apple",
    "deviceModel":"iPad",
    "deviceFamily":"iPad",
    "os":"iOS",
    "osVersion":"15"
}

من المهم ملاحظة أن الزائر لا يستخدم مفتاح واجهة برمجة التطبيقات (API) لمصادقة مكالمات واجهة برمجة التطبيقات (API) الخاصة بك ، لأن أي مفاتيح واجهة برمجة تطبيقات ستكون مكشوفة للجميع وهذا يتعارض مع الغرض من المفاتيح. بدلاً من ذلك ، يسمح لك بوضع قائمة نطاقات معتمدة يُسمح لها باستدعاء نقطة نهاية API من ، بحيث لا يتمكن أي شخص آخر من الاتصال بنقطة نهاية API الخاصة بك واستخدام حصة API الخاصة بك.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...