PhoneGap - كشف نوع الجهاز في phonegap

أقوم بإنشاء تطبيق في phonegap للبرامج الثلاثة المختلفة: Android و iOS و Blackberry. أثناء القيام بذلك ، لا بد لي من اكتشاف نوع الجهاز حتى أتمكن من إدارة ارتفاع وعرض تطبيقي على منصات مختلفة ولأجهزة مختلفة مثل هاتف Android و Android Tablet و iPhone و iPad و Blackberry ...

48
هل تريد حقًا اكتشاف حجم النموذج لتحديد حجم الشاشة؟ هل حقا ؟؟
وأضاف المؤلف Martijn Scheffer, مصدر

9 إجابة

الجديد في Phonegap ، وأبسط ، هو أنه يمكنك استخدام الجهاز.

// Depending on the device, a few examples are:
//   - "Android"
//   - "BlackBerry"
//   - "iOS"
//   - "webOS"
//   - "WinCE"
//   - "Tizen"
//   - "browser"
var devicePlatform = device.platform;
92
وأضاف
حاليًا ، فقط cordova plugin add cordova-plugin-device
وأضاف المؤلف Victor Sergienko, مصدر
أتلقى "لا يوجد موفر للجهاز!" خطأ. أيه أفكار؟
وأضاف المؤلف Marc-André Therrien, مصدر
إذا كنت تجد أن "الجهاز" غير معروف ، فمن المحتمل أنك تستخدم إصدارًا أحدث من Phonegap/Cordova مما يعني أنك بحاجة إلى تثبيت المكون الإضافي. يمكن العثور على هذا هنا ، git-wip-us. apache.org/repos/asf/cordova-plugin-device.git وتثبيتها بواسطة $ phonegap plugin local add https://git-wip-us.apache.org/repos/asf/cordova- plugin-devic & zwnj؛ e.git أو cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-devic&zwnj؛ e.git
وأضاف المؤلف Ian Jamieson, مصدر

إذا كنت ترغب في الحصول على نوع الجهاز قبل onDeviceReady ، يمكنك الحصول على مثل هذا.

var deviceType = (navigator.userAgent.match(/iPad/i))  == "iPad" ? "iPad" : (navigator.userAgent.match(/iPhone/i))  == "iPhone" ? "iPhone" : (navigator.userAgent.match(/Android/i)) == "Android" ? "Android" : (navigator.userAgent.match(/BlackBerry/i)) == "BlackBerry" ? "BlackBerry" : "null";

alert(deviceType);
54
وأضاف
بالنسبة إلى Android ، يمكنك استخدام navigator.userAgent.toLowerCase (). يتضمن ("android")
وأضاف المؤلف João Pimentel Ferreira, مصدر
navigator.userAgent.match (/ epad/i)) == "epad"؟ "epad" لقد وضعت هذا الشرط في الكود الذي توفره لي ... ولكن لا يركب ...
وأضاف المؤلف Preet_Android, مصدر
شكرا جزيلا يا سيدي .. ولكن المشكلة هي أنه لا يمكن الكشف عن الروبوت اللوحي/epad. هل يمكنك مساعدتي كيف يمكنني القيام بذلك. فإنه يدل على نوع epad مثل الروبوت. شكرا جزيلا مقدما.
وأضاف المؤلف Preet_Android, مصدر
وأضاف المؤلف Preet_Android, مصدر
Mozila/5.0 (Linux؛ U؛ Android 4.0.3؛ en-us؛ Transformerr TF101 Build/IML74k) AppleWebKit/534.30 (KHTML ، مثل Gecko) الإصدار/4.0 Safari/534.30 يتم عرض هذه القيمة في التنبيه.
وأضاف المؤلف Preet_Android, مصدر
عليك فقط تسجيل سلسلة userAgent لجهاز Android اللوحي/epad. استخدم console.log (navigator.userAgent) ؛ وتحقق ما تعود عليه ووضع الشرط وفقا للسلسلة.
وأضاف المؤلف JDev, مصدر
في حالتي قمت بإجراء بعض العمليات إذا كان deviceType "فارغ". هذا هو السبب في أنني قمت بتعيين فارغة كسلسلة.
وأضاف المؤلف JDev, مصدر
حاول التنبيه (navigator.userAgent) وأظهر لي ما لديك لـ android epad.
وأضاف المؤلف JDev, مصدر
قد يكون مثل "Mozilla/5.0 (Linux؛ U؛ Android 3.2.1؛ de-de؛ EPAD Build/HTK75) AppleWebKit/534.13 (KHTML like Gecko) Version/4.0 Safari/534.13" for android epad so you يمكن أن يستخدم مثل navigator.userAgent.match (/ epad/i)) == "EPAD"
وأضاف المؤلف JDev, مصدر
لماذا تريد تعيين deviceType إلى السلسلة "فارغة" ؟
وأضاف المؤلف briangonzalez, مصدر
حل Sindre هو واحد أنظف بكثير. $ phonegap plugin local add https://git-wip-us.apache.org/repos/asf/cordova-plugin-devic&zwnj؛ e.git
وأضاف المؤلف Ian Jamieson, مصدر
cordova.platformId 
// "android"
29
وأضاف
هذا ممتاز. لا حاجة الى البرنامج المساعد.
وأضاف المؤلف Jake, مصدر
هذا هو حل أكثر موثوقية من إجابة JDev.
وأضاف المؤلف Design by Adrian, مصدر
هل تعرف قائمة القيم المحتملة؟ أريد تطبيق إعداد معين اعتمادًا على النظام الأساسي ، ولكن لا أعرف ما إذا كان سيكون "ios" أو "iOS" أو "iPhone" أو "iSmugface".
وأضاف المؤلف Roel, مصدر
Roel هذا مجرد تخمين ، ولكن بما أن cordova.platformVersion يشير إلى إصدار منصة Cordova وليس إصدار الجهاز ، أعتقد أن cordova.platformId متوافق مع اسم المجلد تحت الأنظمة الأساسية. حتى بالنسبة iOS ، سيكون "ios"
وأضاف المؤلف csga5000, مصدر

يمكنك استخدام خاصية device.name للحصول على معلومات مفصلة حول الجهاز.

    function onDeviceReady() {
    var name=device.name ;
       }

أو للحصول على النظام الأساسي فقط ، يمكنك استخدام خاصية device.platform.

    function onDeviceReady() {
    var name=device.name ;
    var plat=device.platform;
       }
5
وأضاف
شكرا جزيلا ... ولكن هنا أريد أن نوع الجهاز. إما أن يكون الهاتف الروبوت سادة الروبوت. ونفس في ثا cas من اي فون. يعني به جهاز iPhone أو iPad. لأن طلبي هو للمنصة الثلاثة. 1.Android 2. Blackberry و 3. iPhone/iPad.
وأضاف المؤلف Preet_Android, مصدر

استخدم هذا الكود كملف ht html

مثال خصائص الجهاز

<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>
<script type="text/javascript" charset="utf-8">

// Wait for PhoneGap to load
//
document.addEventListener("deviceready", onDeviceReady, false);

// PhoneGap is ready
//
function onDeviceReady() {
    var element = document.getElementById('deviceProperties');

    element.innerHTML = 'Device Name: '     + device.name     + '
' + 'Device PhoneGap: ' + device.phonegap + '
' + 'Device Platform: ' + device.platform + '
' + 'Device UUID: ' + device.uuid + '
' + 'Device Version: ' + device.version + '
'; } </script>

جارٍ تحميل خصائص الجهاز ...

أقترح عليك التحقق من هذا في الجهاز حظا سعيدا عامرخان الأول.

3
وأضاف

أنا بالتأكيد لن تستخدم نوع الجهاز عند وضع صفحة ، يجب أن يعتمد التصميم على حجم الشاشة فقط

يمكنك استخدام خصائص javascript:

width = window.innerWidth
height = window.innerHeight

أو استخدم CSS:

.element{   
    height: 50vh;  //(height = 50 percent of screen)
}

انظر vmin ، vmax ، vh ، vw

2
وأضاف
السؤال هو كيفية اكتشاف نوع الجهاز. أنت لم تجب على السؤال.
وأضاف المؤلف Pier, مصدر
هاه؟ نعم ، إنه يريد أن يكتشف الجهاز ، ثم يكون لديه جدول بأحجام مشفرة لكل نموذج !، هذا خطأ ، إن سؤاله الحقيقي ليس كيفية اكتشاف النموذج ، ولكن كيفية اكتشاف حجم الشاشة ، لذا فإن إجابتي صحيحة ، وأي شخص يوافق بالفعل على فكرة استخدام طراز جهاز لتحديد حجم الشاشة ليس كذلك.
وأضاف المؤلف Martijn Scheffer, مصدر
السؤال هو كيفية اكتشاف نوع الجهاز إلى INFER حجم الشاشة ، وهذا خطأ فقط! ، اقرأه مرة أخرى! أي شخص يقلل من هذه الإجابة يشجع شخص ما على كتابة رمز لن يتغير بشكل جيد وسوف ينكسر. "لا بد لي من اكتشاف نوع الجهاز حتى أتمكن من إدارة ارتفاع وعرض التطبيق الخاص بي"! أليس هذا واضح؟
وأضاف المؤلف Martijn Scheffer, مصدر
السؤال ليس أنه يريد فقط معرفة نوع الجهاز!
وأضاف المؤلف Martijn Scheffer, مصدر
نعم فعلت ، والسؤال هو للكشف عن الجهاز لمعرفة حجم الشاشة !! ، انها خاطئة totaly. "يجب أن تكتشف نوع الجهاز حتى أتمكن من إدارة ارتفاع وعرض التطبيق على منصات مختلفة" لا ينبغي أن أكون صوتًا لأسفل ، وأن أقرأ سؤاله مرة أخرى ، وما يريد فعله هو الخطأ.
وأضاف المؤلف Martijn Scheffer, مصدر
النقاط الجيدة ، ولكن لا يجيب على السؤال الذي تم طرحه.
وأضاف المؤلف Priidu Neemre, مصدر

You can have a look at the following link: http://docs.phonegap.com/en/1.0.0/phonegap_device_device.md.html

هناك عدة طرق للحصول على معلومات عن الجهاز من phonegap.

خيار آخر هو إلقاء نظرة على نوع المتصفح. (IE = WP7 ، Safari = iOS ، ...)

لست متأكدًا مما إذا كنت ستتمكن من اكتشاف ما إذا كنت تستخدم هاتفًا أو جهازًا لوحيًا يعمل بنظام Android ... على أي حال ، يجب أن تكون تطبيقات html قادرة على التعامل مع أي دقة شاشة. يمكن أن يكون لديك قرارات مختلفة على الهواتف أيضا!

1
وأضاف
function onDeviceReady()
{
// ***IMPORTANT: access device object only AFTER "deviceready" event    
document.getElementById("name").innerHTML = device.name;
document.getElementById("pgversion").innerHTML = device.cordova ? device.cordov:device.phonegap;
document.getElementById("platform").innerHTML = device.platform;
document.getElementById("uuid").innerHTML = device.uuid;
document.getElementById("version").innerHTML = device.version;

}

See Here for device.platform

0
وأضاف
device.platform return "Android" على محاكي android.Actually أنا لا تحقق على جهاز حقيقي ولكن أعرف أن هذا سوف يعطيك نتيجة مثمرة.
وأضاف المؤلف vikky, مصدر
شكرا جزيلا ... ولكن هنا أريد أن نوع الجهاز. إما أن يكون الهاتف الروبوت سادة الروبوت. ونفس في ثا cas من اي فون. يعني به جهاز iPhone أو iPad. لأن طلبي هو للمنصة الثلاثة. 1.Android 2. Blackberry و 3. iPhone/iPad.
وأضاف المؤلف Preet_Android, مصدر

إذا كنت بحاجة إلى هذه المعلومات لأنك تحاول تنسيق الشاشة بشكل صحيح - يجب أن تستخدم استعلامات CSSmedia لتحديد تخطيط الشاشة المناسب وتطبيق CSS وفقًا لذلك.

استخدم Google للعثور على معلومات حول "التصميم المتجاوب مع CSS"

0
وأضاف
Android Sudan Community
Android Sudan Community
900 مشارك

كل اقتراحاتكم تتم مشاركتها هنا رابط القناة لتنزيل البرامج والالعاب من هنا @android_sudan تنبيه : القروب غير مختص إطلاقا بي الانترنت المجاني مثل ملفات الحاقن وماشابه يمنع منعا باتا نشر اي ملفات او برامج او اي شيء يتعلق بالانترنت المجان