HTML5 में iPad मिनी का पता लगाएं


376

Apple का iPad मिनी iPad 2 का एक छोटा क्लोन है, जिसे हम चाहते हैं। जावास्क्रिप्ट में, window.navigatorऑब्जेक्ट मिनी और आईपैड 2 के लिए समान मानों को उजागर करता है। अंतर का पता लगाने के लिए अब तक के मेरे परीक्षणों से सफलता नहीं मिली है।

यह महत्वपूर्ण क्यों है?

जैसा कि आईपैड मिनी और आईपैड 2 स्क्रीन पिक्सल में समान हैं, लेकिन वास्तविक आकार (इंच / सेंटीमीटर) में भिन्न हैं, वे पीपीआई (पिक्सल प्रति इंच) में भिन्न होते हैं ।

वेब एप्लिकेशन और गेम के लिए एक अनुकूल यूजर इंटरफेस की पेशकश करने के लिए, कुछ तत्वों को उपयोगकर्ता के अंगूठे या उंगली की स्थिति के सापेक्ष आकार में समायोजित किया जाता है, इस प्रकार, हम उस बेहतर उपयोगकर्ता अनुभव के लिए प्रदान करने के लिए कुछ छवियों या बटन को स्केल करना चाहते हैं।

मैंने अब तक की कोशिश की (कुछ बहुत स्पष्ट दृष्टिकोण सहित):

  • window.devicepixelratio
  • सेमी यूनिट में सीएसएस तत्व की चौड़ाई
  • CSS मीडिया क्वेरी (जैसे resolutionऔर -webkit-device-pixel-ratio)
  • एसवीजी समान इकाइयों में आरेखण
  • सीएसएस वेबकिट के सभी प्रकारों को एक निर्धारित समय के लिए बदल देता है और प्रदान किए गए फ़्रेमों की गिनती करता है requestAnimFrame(मैं एक औसत अंतर का पता लगाने की उम्मीद कर रहा था)

मैं विचारों से बाहर ताजा हूं। आप कैसे हैं?

अपडेट अब तक की प्रतिक्रियाओं के लिए धन्यवाद। मैं iPad मिनी बनाम 2 का पता लगाने के खिलाफ मतदान करने वाले लोगों पर टिप्पणी करना चाहूंगा क्योंकि Apple के पास ओम है, उन सभी पर शासन करने के लिए एक दिशानिर्देश। ठीक है, यहाँ मेरा तर्क है कि मुझे ऐसा क्यों लगता है कि दुनिया में यह जानने के लिए वास्तव में सभी समझ में आता है कि कोई व्यक्ति iPad मिनी या 2 का उपयोग कर रहा है या नहीं और मेरे तर्क से आपको क्या पसंद है।

आईपैड मिनी न केवल बहुत छोटा उपकरण है (9.7 इंच बनाम 7.9 इंच), लेकिन इसका फॉर्म फैक्टर एक अलग उपयोग की अनुमति देता है। IPad 2 को आमतौर पर गेमिंग के दौरान दो हाथों से पकड़ा जाता है जब तक कि आप चक नोरिस न हों । मिनी छोटा है, लेकिन यह बहुत हल्का है और गेमप्ले के लिए अनुमति देता है जहां आप इसे एक हाथ में रखते हैं और दूसरे का उपयोग स्वाइप या टैप करने या करने के लिए करते हैं। एक गेम डिजाइनर और डेवलपर के रूप में, मैं सिर्फ यह जानना चाहूंगा कि क्या यह एक मिनी है इसलिए मैं खिलाड़ी को एक अलग कंट्रोस्केमे के साथ प्रदान करना चुन सकता हूं यदि मैं चाहता हूं (उदाहरण के लिए खिलाड़ियों के समूह के साथ ए / बी परीक्षण के बाद)।

क्यों? खैर, यह एक सिद्ध तथ्य है कि अधिकांश उपयोगकर्ता डिफ़ॉल्ट सेटिंग्स के साथ जाते हैं, इसलिए एक वर्चुअल थंबस्टिक को छोड़कर और स्क्रीन पर कुछ अन्य टैप-आधारित नियंत्रण डालते हैं (बस यहां एक मनमाना उदाहरण देते हुए) जब खिलाड़ी लोड होता है पहली बार के लिए खेल मैं क्या है, और शायद अन्य खेल डिजाइनर, करने में सक्षम होना पसंद करेंगे।

तो IMHO यह मोटी उंगलियों / दिशा-निर्देशों की चर्चाओं से आगे निकल जाता है और बस कुछ ऐसा है जो Apple और अन्य सभी विक्रेताओं को करना चाहिए: हमें अपने डिवाइस की विशिष्ट पहचान करने और निम्नलिखित दिशानिर्देशों के बजाय अलग-अलग सोचने की अनुमति दें ।


अच्छा सवाल .. मैं भी एक समाधान के लिए देख रहा था। वेब पर कुछ भी नहीं मिला
AnhSirk Dasarp 10

4
सबसे अच्छी बात यह है कि ऐप्पल Bugreporter.apple.com के साथ एक बग दर्ज करें। यदि पर्याप्त लोग करते हैं, तो आशा है कि वे हमें सुनेंगे। वर्तमान स्थिति बल्कि निराशाजनक है।
विलियम जॉकसच

क्या आप -webkit-min-device-pixel-ratio का उपयोग नहीं कर सकते:? जैसा कि iPhone 4 के लिए mobilexweb.com/blog/…
Bgi


1
हम्म, यह करने की कोशिश करने के बजाय एचआईजी का पालन करने के बारे में कैसे? यह समय और प्रयास की बर्बादी है, और ईमानदारी से मुझे यह पढ़ने के लिए बीमार कर दिया। लोग सही तरीके से सामान क्यों नहीं कर सकते?
एलांड

जवाबों:


253

एक स्टीरियो ऑडियो फ़ाइल चलाएं और एक्सेलेरोमीटर प्रतिक्रिया की तुलना करें जब वॉल्यूम सही चैनल पर और बाएं चैनल पर अधिक है - iPad2 में मोनो स्पीकर थे जबकि iPad मिनी में अंतर्निहित स्टीरियो स्पीकर हैं।

डेटा इकट्ठा करने के लिए आपकी सहायता की आवश्यकता है कृपया इस पृष्ठ पर जाएं और मुझे इस पागल विचार के लिए डेटा एकत्र करने में मदद करें। मेरे पास आईपैड मिनी नहीं है इसलिए मुझे आपकी मदद की जरूरत है


35
आपको नहीं लगता कि जब आप वेबसाइट पर जाते हैं, तो डिवाइस खराब होने की आवाज खराब होती है? उल्लेख नहीं करने के लिए लोगों को चुप पर अपने डिवाइस हो सकता है। कोई आवाज इसे रोक नहीं पाती।
फ्लेक्सड

6
इसके लिए एक मामूली संशोधन के रूप में: एक स्टीरियो ऑडियो फ़ाइल चलायें जहाँ दायाँ चैनल बाएँ चैनल का एक उलटा संस्करण है। एकल स्पीकर के साथ, उन्हें एक्सीलरोमीटर को रद्द करना चाहिए और प्रभावित नहीं करना चाहिए। लेकिन किसी भी तरह से, स्पीकर्स + एक्सेलेरोमीटर पर निर्भर सुपर अविश्वसनीय है।
केविन एननिस

4
किसी को वास्तव में इस समाधान को लागू करने और परिणाम दिखाने की आवश्यकता है।
स्टीफन आइलर्ट

14
IPad2 पर इन पंक्तियों के साथ, क्या new webkitAudioContext().destination.numberOfChannelsवापसी करता है ?
डगलस

3
@ यदि आपको नहीं लगता कि डिवाइस डिटेक्शन करना एक बुरा विचार है?
रिकार्डो टोमासी

132

अद्यतन: ऐसा लगता है कि ये मान टैब निर्माण के समय व्यूपोर्ट की चौड़ाई और ऊंचाई की रिपोर्ट कर रहे हैं, और वे रोटेशन पर नहीं बदलते हैं, इसलिए इस विधि का उपयोग डिवाइस का पता लगाने के लिए नहीं किया जा सकता है !

आप screen.availWidthया तो उपयोग कर सकते हैं या screen.availHeightजैसा कि वे iPad मिनी और iPad 2 के लिए भिन्न प्रतीत होते हैं।

आईपैड मिनी

screen.availWidth = 768
screen.availHeight = 1004

आईपैड 2

screen.availWidth = 748
screen.availHeight = 1024

स्रोत: http://konstruktors.com/blog/web-design/4396-detect-ipad-mini-javascript/


3
अब तक सबसे अच्छा कोई समझौता नहीं समाधान की तरह लग रहा है।
मॉर्गन वाइल्ड

मैं इस अंतर के बारे में सोच रहा हूं। मैंने सोचा कि दोनों एक ही संकल्प का उपयोग करते हैं? क्या सफारी क्रोम इन दोनों उपकरणों पर अलग है?
मार्क

10
यह एक डिटेक्टर है कि कितने टैब खुले हैं। मेरे आईपैड 3 पर यह विभिन्न मूल्यों की रिपोर्ट करता है जब मेरे पास एक से अधिक टैप खुले होते हैं, स्क्रीन कैप्चर पर रिपोर्ट से मेल खाते हैं। IPad मिनी स्क्रीन कैप्चर में दो टैब खुले हैं, जबकि iPad 2 कैप्चर में केवल एक है। जब मैं एक या दो टैब खोलता हूं, तो मेरा iPad 3 मिलान मूल्यों की रिपोर्ट करता है।
मिस्टर बर्ना

7
नहीं, यह एक डिटेक्टर नहीं है कि कितने टैब खुले हैं: यह इस बात का एक डिटेक्टर है कि इस पृष्ठ को लोड करने के लिए जिस टैब का उपयोग किया जा रहा था, उस डिवाइस को किस ओरिएंटेशन से खोला गया था। मुझे यह निश्चित नहीं है कि ऐसा इसलिए है क्योंकि व्यूपोर्ट का आकार वास्तव में अब उस मूल्य पर तय हो गया है जब आप टैब को घुमाएंगे, या यदि यह बस कहीं गलत तरीके से कैश किया जा रहा है, लेकिन यदि आप चारों ओर बैठते हैं और विभिन्न रोटेशन में कई टैब के साथ खेलते हैं कॉन्फ़िगरेशन आप देख सकते हैं कि यह कैसे संबंधित है। जहां यह दिलचस्प हो जाता है कि यदि आप टैब स्विच करते हैं, घुमाते हैं, और फिर पिछले टैब पर वापस आते हैं और पुनः लोड होता है, तो यह अपडेट होता है।
जे फ्रीमैन -सौरिक-

1
हां, जय, मैंने इसी तरह की गलती की, गलत कारण के परिणामस्वरूप गलत बयान दिया। लेकिन मेरा निहितार्थ यह है कि यह आईपैड मिनी के लिए एक डिटेक्टर नहीं है, क्योंकि यह अन्य आईपैड पर गलत सकारात्मक परिणाम देगा।
श्री बर्ना

84

मैं समझता हूं कि यह थोड़ा कम तकनीक वाला समाधान हो सकता है, लेकिन चूंकि हम अभी तक कुछ और नहीं ले सकते हैं।

मैं मान रहा हूं कि आप पहले से ही अन्य उपकरणों के लिए जांच कर रहे हैं, इसलिए मुझे निम्नलिखित परिदृश्य संभव हैं।

आप सभी संभावित सबसे लोकप्रिय उपकरणों की जांच कर सकते हैं जिनके लिए विशेष सीएसएस / साइज़िंग की आवश्यकता होती है, और अगर यह उन सभी में से किसी से मेल नहीं खाता है तो मान लें कि यह एक iPad मिनी है या बस उपयोगकर्ता से पूछें?

// Device checks here
...
else {
  // it would probably be better to make this a nicer popup-thing
  var mini = prompt("Are you using a iPad mini? Press yes for a better user experience");
  // Store the result for future visits somehow.
}

मुझे पता है कि अभी एक बेवकूफ दृष्टिकोण की तरह लग सकता है, लेकिन अगर वर्तमान में हमारे पास यह निर्णय लेने का कोई तरीका नहीं है कि क्या डिवाइस आईपैड मिनी है या आईपैड 2 है तो कम से कम वेबसाइट आईपैड मिनी उपकरणों के साथ उपयोग करने योग्य होगी।

तुम भी कुछ इस तरह के साथ जा सकते हैं:

"आपको सबसे अच्छा संभव ब्राउज़िंग अनुभव देने के लिए, हम आपके डिवाइस-प्रकार का पता लगाने के लिए वेबसाइट को आपके डिवाइस में अनुकूलित करने का प्रयास करते हैं। दुर्भाग्य से सीमाओं के कारण यह हमेशा संभव नहीं होता है और हम वर्तमान में यह निर्धारित नहीं कर सकते हैं कि आप iPad 2 या iPad का उपयोग करते हैं या नहीं। इन विधियों का उपयोग करके मिनी।

ब्राउज़िंग के सर्वोत्तम अनुभव के लिए, कृपया नीचे दिए गए डिवाइस का चयन करें।

इस उपकरण पर वेबसाइट पर भविष्य की यात्राओं के लिए यह विकल्प संग्रहीत किया जाएगा।

[] iPad 2 
[*] iPad mini
[] Ancient blackberry device

"

मैं पूरी तरह से परिचित नहीं हूं कि आप जावास्क्रिप्ट में क्लाइंट-साइड क्या कर सकते हैं और नहीं कर सकते। मुझे पता है कि आप एक उपयोगकर्ता का आईपी प्राप्त कर सकते हैं, लेकिन क्या उपयोगकर्ता का मैक पता प्राप्त करना संभव है? IPad2 और iPad मिनी के बीच वे रेंज अलग हैं?


25
मैं इस समाधान से बहुत सहमत हूं। उपयोगकर्ता को चुनने की अनुमति (और संभावित रूप से बदल) उनके डिवाइस को उन चीजों में लॉक करने से बेहतर है जो आप सोचते हैं कि वे चाहते हैं। यदि आप डिवाइस को काफी सटीक रूप से निर्धारित कर सकते हैं; इसे डिफ़ॉल्ट के रूप में उपयोग करें, लेकिन मुझे लगता है कि आपको हमेशा एक विकल्प प्रदान करना चाहिए - भले ही वह सेटिंग मेनू में छिपा हो।
लियाम न्यूमरच

2
@LiamNewmarch मैं उपयोगकर्ता की प्राथमिकता को मानने और उन्हें लॉक करने के बजाय अनुमान और त्वरित उपयोगकर्ता का बहुत बड़ा प्रशंसक हूं। कभी-कभी मैं अपने iPad पर डेस्कटॉप साइट का उपयोग करना चाहता हूं। आम तौर पर मैं एक साइट के अंग्रेजी संस्करण का उपयोग करना चाहता हूं, चाहे वह लानत आईपी-टू-जियो डेटाबेस कहे कि मैं वर्तमान में भौगोलिक आधार पर स्थित हूं! आप मेरे अपवित्र हैं सर।
रेबेका

7
हालांकि एक पॉप अप सवाल का उपयोग करने के खिलाफ सिफारिश करेंगे। एसओ जैसा बैनर लगाता है जब यह ऑटो आपको लॉग इन करता है। तो उपयोगकर्ता केवल पृष्ठ को पढ़ सकता है यदि वे जवाब देने की परवाह नहीं करते हैं, बजाय एक सवाल का जवाब देने के लिए अपनी मानसिकता से बाहर निकलने के लिए।
माइकल एलन

1
उपयोगकर्ताओं से यह सवाल पूछकर कि आप Apple के बदलाव के लिए उपयोगकर्ता के अनुभव को काफी कम कर देते हैं, क्योंकि यह एक ऐसी चीज है जिसके बारे में देखभाल बहुत कुछ है।
जिम्नीरिकेट

9
-1: मुझे उन पृष्ठों से नफरत है, जो मुझे उनसे मिलने पर सवाल पूछते हैं। मेरी प्रतिक्रिया: "कौन परवाह करता है, बस मुझे सामग्री दिखाएं!"। IPad2 और iPad मिनी के बीच अंतर बहुत बड़ा नहीं है (IMnsHO) इस दृष्टिकोण को वारंट करने के लिए। जेएस हाँ, सवाल नहीं।
जॉन्डोडो

74

मुझे पता है कि यह एक भयानक समाधान है, लेकिन फिलहाल एक iPad मिनी और एक iPad 2 के बीच अंतर करने का एकमात्र तरीका इसकी बिल्ड नंबर की जांच करना और संबंधित डिवाइस के साथ प्रत्येक बिल्ड नंबर को मैप करना है।

आइए मैं आपको एक उदाहरण देता हूं: iPad मिनी, संस्करण 6.0, 10A406"का निर्माण संख्या के रूप में" उजागर कर रहा है , जबकि आईपैड 2 " 10A5376e" उजागर कर रहा है ।

यह मान आसानी से उपयोगकर्ता एजेंट ( window.navigator.userAgent) पर एक रेगेक्स के माध्यम से प्राप्त किया जा सकता है ; वह संख्या " Mobile/" के साथ उपसर्ग है ।

दुर्भाग्य से यह एक iPad मिनी का पता लगाने का एकमात्र असमान तरीका है; मैं viewportविभिन्न स्क्रीन आकारों पर सामग्री को ठीक से प्रदर्शित करने के लिए संबंधित दृष्टिकोण (जहां समर्थित, vh / vw इकाइयों का उपयोग करके) अपनाने का सुझाव दूंगा।


5
बिल्ड नंबर कुंजी के लिए प्रकट होता है, लेकिन मैंने देखा है कि डिवाइस को जिस देश में खरीदा गया था, उसके आधार पर बिल्ड नंबर अलग हो सकता है। उदाहरण के लिए ग्रीस में iPad 2 बिल्ड नंबर 10A5376e के बजाय 10A403 प्रतीत होता है, जिसे मैंने भी देखा था। यूएस iPad 2 के से। मैं मिनी के निर्माण की संख्या का अनुमान लगा सकता हूं, इसमें अंतर भी हो सकता है।
तेरह

67
यह समाधान गलत है। कुछ संदर्भ के लिए: "बिल्ड नंबर" ऑपरेटिंग सिस्टम का वर्णन करता है, न कि हार्डवेयर का। अब, यदि विभिन्न उपकरणों में हमेशा अलग-अलग OS का निर्माण होता है, तो यह ठीक होगा, लेकिन यह केवल पिछले OS रिलीज के लिए अतीत में सच है जो प्रत्येक नए डिवाइस के साथ आया था। इस स्थिति में, 10A406 iPad मिनी के लिए 6.0 के लिए बिल्ड नंबर है, और 10A403 iPad 2 ( नहीं 10A5376e, जो 6.0 बीटा 4) के लिए 6.0 के लिए बिल्ड नंबर था। हालांकि, दोनों पर 6.0.1 की बिल्ड संख्या पहले से ही 10A523 है, इसलिए वर्तमान बिल्ड पहले से ही समान है, और भविष्य के बिल्ड जारी रहेंगे।
जे। फ्रीमैन -सौरिक-

1
मुझे जय के सही होने का डर है, मेरे डेटा (जैसे यह है) की जाँच की: बिल्ड नंबर ओएस को दर्शाता है।
एससीआरआर

1
क्या आपने इस PPI हैक की कोशिश की है? stackoverflow.com/questions/279749/… - मूल रूप से 1 इंच की चौड़ाई के साथ एक छिपा हुआ तत्व बनाते हैं, फिर पिक्सेल में चौड़ाई प्राप्त करते हैं। जिससे आपकी जड़ समस्या का समाधान होना चाहिए।
जॉनब्लेवन

@ जॉनल्वन: यह प्रतिपादन की समस्या को हल कर सकता है, लेकिन लॉग विश्लेषण आदि के बारे में क्या? मूल समस्या क्यूपर्टिनो में हमारे दोस्तों के साथ है और 'देशी' ऐप्स की ओर धकेलती है।
esjr

69

tl; डॉ। iPad मिनी और iPad 2 के बीच के अंतर की भरपाई न करें जब तक कि आप वसा और पतली उंगलियों के बीच क्षतिपूर्ति नहीं करेंगे।

Apple जानबूझकर आपको अंतर बताने की कोशिश नहीं कर रहा है। Apple हमें अलग-अलग आकार के संस्करणों के लिए अलग-अलग कोड लिखने के लिए नहीं चाहता है। खुद Apple का हिस्सा नहीं होने के कारण, मुझे यह पक्का पता नहीं है, मैं सिर्फ यह कह रहा हूं कि यह ऐसा ही है। हो सकता है, यदि डेवलपर समुदाय iPad मिनी के लिए एक फैंसी डिटेक्टर के साथ आता है, तो Apple जानबूझकर iOS के भविष्य के संस्करणों में उस डिटेक्टर को तोड़ सकता है। Apple चाहता है कि आप अपना न्यूनतम लक्ष्य आकार 44 iOS बिंदुओं पर सेट करें, और iOS प्रदर्शित करेगा कि दो आकारों में, बड़ा iPad आकार और छोटा iPhone / iPad मिनी आकार। 44 अंक काफी उदार हैं, और आपके उपयोगकर्ता निश्चित रूप से जान पाएंगे कि क्या वे छोटे iPad पर हैं, इसलिए अपने दम पर क्षतिपूर्ति कर सकते हैं।

मेरा सुझाव है कि डिटेक्टर के लिए पूछने के लिए आपके द्वारा बताए गए कदम को वापस लें: अंतिम उपयोगकर्ता आराम के लिए लक्ष्य आकार को समायोजित करना। बड़े iPad पर एक आकार के लिए डिज़ाइन करने और छोटे iPad पर एक और आकार का निर्णय करके आप यह निर्णय ले रहे हैं कि सभी लोगों की उंगलियाँ समान आकार की हैं। यदि आपका डिज़ाइन इतना तंग है कि आईपैड 2 और आईपैड मिनी से आकार में अंतर पड़ता है, तो मेरे और मेरी पत्नी के बीच की उंगलियों के आकार में बड़ा अंतर होगा। तो उपयोगकर्ता उंगली के आकार के लिए क्षतिपूर्ति करें, न कि iPad मॉडल।

मेरे पास एक सुझाव है कि उंगली के आकार को कैसे मापें। मैं एक देशी आईओएस डेवलपर हूं, इसलिए मुझे नहीं पता कि यह एचटीएमएल 5 में पूरा किया जा सकता है या नहीं, लेकिन यहां बताया गया है कि मैं मूल ऐप में उंगली का आकार कैसे मापूंगा। मैं उपयोगकर्ता को दो वस्तुओं को एक साथ जोड़ देगा, फिर मापेंगे कि वे एक साथ कितने करीब हैं। छोटी उंगलियों को ऑब्जेक्ट्स को एक साथ पास मिलेगा, और आप इस माप का उपयोग स्केलिंग कारक प्राप्त कर सकते हैं। यह स्वचालित रूप से iPad आकार के लिए समायोजित करता है। एक ही व्यक्ति के पास iPad 2 की तुलना में iPad मिनी पर स्क्रीन बिंदुओं का एक बड़ा माप होगा। एक गेम के लिए आप इस अंशांकन चरण को कॉल कर सकते हैं, या इसे कॉल आउट भी नहीं कर सकते हैं। इसे एक शुरुआती कदम के रूप में लें। उदाहरण के लिए एक शूटिंग गेम में खिलाड़ी ने बारूद को गति के साथ बंदूक में रखा।


1
यह पहला पैराग्राफ सही उत्तर है। 44 अंक का अनुशंसित लक्ष्य आकार पूरी तरह से ठीक है।
रिकार्डो टोमासी

यार, अगर मेरे पास वोट देने के लिए केवल एक हजार अधिक वोट थे। पहला पैराग्राफ वास्तव में यह है, आपने इंटरनेट जीता।
माइक

31

उपयोगकर्ता को अपने iPad को जमीन से कई हजार फीट ऊपर छोड़ने के लिए कहें। फिर टर्मिनल वेग तक पहुंचने के लिए iPad के लिए लगने वाले समय को मापने के लिए आंतरिक एक्सेलेरोमीटर का उपयोग करें। बड़े आईपैड में अधिक से अधिक ड्रैग गुणांक होता है और आईपैड मिनी की तुलना में कम समय में टर्मिनल वेग तक पहुंचना चाहिए ।

आपको शुरू करने के लिए यहां कुछ नमूना कोड दिए गए हैं।

function isIPadMini( var timeToReachTerminalVelocity )
{
    return (timeToReachTerminalVelocity > IPAD_MINI_THRESHOLD);
}

जब Apple अनिवार्य रूप से अगले iPad को एक अलग रूप में रिलीज़ करता है, तो आपको लगभग निश्चित रूप से इस कोड को फिर से देखना होगा। लेकिन मुझे यकीन है कि आप चीजों के शीर्ष पर रहेंगे और iPad के प्रत्येक नए संस्करण के लिए इस हैक को बनाए रखेंगे।


ऐसा नहीं होना चाहिए "एक iPad मिनी से अधिक समय"?
थॉमस डब्ल्यू

1
नीस गैलीलियो-ईश लाइन ऑफ़
थॉट ने

2
इसे और अधिक विश्वसनीय बनाने के लिए, ड्रॉप से ​​पहले iPad के मामलों को हटा दिया जाना चाहिए।
फुरमान्टर

28

दुर्भाग्य से, इस समय ऐसा लगता है कि यह संभव नहीं है: http://www.mobilexweb.com/blog/ipad-mini-detection-for-html5-user-agent

दो दिन पहले, मैंने पहली बार ज्ञात समस्या के बारे में ट्वीट किया है: " यह पुष्टि की गई है कि iPad मिनी उपयोगकर्ता एजेंट iPad 2 के समान है "। मुझे वास्तव में सैकड़ों उत्तर मिले हैं, जिसमें कहा गया है कि उपयोगकर्ता एजेंट सूँघना एक बुरा व्यवहार है, कि हमें उपकरणों का पता लगाना चाहिए, आदि, आदि।

ठीक है दोस्तों, आप सही हैं, लेकिन इसका समस्या से कोई सीधा संबंध नहीं है। और मुझे दूसरी बुरी खबर जोड़ने की जरूरत है: न तो "फ़ीचर डिटेक्शन" बनाने के लिए कोई क्लाइंट-साइड तकनीक है और न ही


8
@ net.uk.sweet - तो फिर आप उत्तर को क्यों नहीं संपादित करते और गलतियों को ठीक करते हैं? और btw, उद्धृत पाठ में अंग्रेजी बुरा नहीं लगता है।
सैंडमैन

@ शशि आप कैसे जान सकते हैं कि उस उद्धृत पाठ का लेखक एक इतालवी है? मैं देशी अंग्रेजी बोलने वाला नहीं हूं। LOL
टोबी डी

"'फीचर डिटेक्शन' बनाने के लिए कोई क्लाइंट-साइड तकनीक नहीं है" न ही पूरी तरह से गलत है। सुविधा का पता लगाना ! = उपकरण का पता लगाना
रिकार्डो टोमासी

@ माइटिक मून मैंने अभी मूल लेख पर देखा है जो उपरोक्त पोस्ट में जुड़ा हुआ है जहां लेखक के बारे में जानकारी है।
शि

26

यह एक जंगली शॉट है, लेकिन iPad 2 और iPad मिनी के बीच अंतर में से एक यह है कि पूर्व में 3-अक्ष गायरोस्कोप नहीं है। शायद यह देखने के लिए कि आप किस प्रकार की जानकारी प्राप्त कर सकते हैं, यह देखने के लिए WebKit डिवाइस ओरिएंटेशन एपीआई का उपयोग करना संभव होगा।

उदाहरण के लिए, यह पृष्ठ सुझाव देता है कि आप केवल प्राप्त कर सकते हैंrotationRate यदि डिवाइस में जाइरोस्कोप है तो मान ।

क्षमा करें, मैं कार्यशील POC नहीं दे सकता - मेरे पास iPad मिनी तक पहुंच नहीं है। हो सकता है कि कोई व्यक्ति जो इन अभिविन्यास एपीआई के बारे में थोड़ा अधिक जानता है वह यहां झंकार सकता है।


3
तो, ऐप्पल की वेबसाइट iPad 2 पर जाइरोस्कोप को "3-अक्ष" गायरोस्कोप के रूप में वर्णित नहीं करती है; लेकिन, जब वे "जाइरोस्कोप" कहते हैं, तो उनका मतलब एक विशिष्ट प्रकार का हिस्सा होता है (जैसे कि एप्लिकेशन डेवलपर्स ऐसे गेम विकसित कर रहे हैं जिनके लिए जाइरोस्कोप क्षमता द्वारा उस हिस्से की आवश्यकता होती है, यह आश्वासन दे सकता है कि यह वहां है और उनके लिए काम करेगा)। यदि आप "3-एक्सिस जाइरोस्कोप" "आईपैड 2" के लिए एक Google खोज करते हैं, तो आपको 2010 के अंत से और 2011 की शुरुआत तक कई लेख मिलते हैं जो यह बताता है कि आईपैड 2 के समान 3-एक्सिस जीरोस्कोप भाग के साथ आने की उम्मीद है कि कैसे iPhone 4 पहले से ही था: जब यह बाहर आया, तो हम निराश नहीं थे; पी।
जे। फ्रीमैन -सौरिक-

यह वही है जो मैंने अपने सुझाव पर आधारित किया है: Apple.com/ipad/ipad-2/specs.html इसमें किसी भी गायरोस्कोप का उल्लेख नहीं है। केवल "एक्सेलेरोमीटर"। यह देखते हुए, और यह तथ्य कि उनके डॉक्स से प्रतीत होता है कि कुछ उपकरण केवल गति एपीआई के एक सबसेट का समर्थन करते हैं, यह एक कोशिश के लायक बनाता है। मैं, अगर मेरे पास एक आईपैड मिनी होता ...
असफ लवी

2
नहीं, गंभीरता से: यह "जाइरोस्कोप" कहता है, "एक्सीलरोमीटर" के समान छोटे खंड में। मुझे लगता है कि मैं आपके द्वारा हाइलाइट किए गए शब्द "जाइरोस्कोप" से जुड़े वेबपेज का स्क्रीनशॉट पोस्ट कर सकता हूं, लेकिन आपको इसे ctrl-F के साथ खोजने में सक्षम होना चाहिए। (संपादित करें: ठीक है, हास्य मूल्य के लिए, मैंने ऐसा किया: i.imgur.com/8BZhx.png <- अब इसे देखें? पी; भले ही, "3-अक्ष गायरोस्कोप" अंतर डालने के लिए और भी आराम करने के लिए, यदि आप? निचले स्तर के पृष्ठों पर जाएं Apple ऐतिहासिक समर्थन संदर्भ के लिए इस तरह की चीज़ों के लिए रखता है, आप देख सकते हैं कि यह विशेष रूप से "3-अक्ष गायरो" भी कहता है। support.apple.com/kb/SP622
जे फ्रीमैन -सौरिक-

1
अगर आईपैड मिनी और आईपैड 2 में गति एपीआई क्षमताओं के बीच अंतर है, तो ठीक है, वास्तव में अटकलें लगाने की आवश्यकता नहीं है। यह सिर्फ इसे देखने और देखने की कोशिश है। तो, यहाँ किसके पास iPad मिनी है? भले ही, मुझे यह विचार दोनों उपकरणों के लिए तकनीकी चश्मे को देखकर और उन मतभेदों को खोजने के लिए आया जो HTML / JS में होश में हो सकते हैं। अन्य मतभेद भी हो सकते हैं।
असफ लवी

20

वैसे, iPad 2 और iPad Mini में अलग-अलग आकार की बैटरी हैं।

यदि iOS 6 इसका समर्थन करता है, तो आप वर्तमान बैटरी स्तर का 0.0..1.0उपयोग करने से प्राप्त कर सकते हैं window.navigator.webkitBattery.level। कुछ स्तर पर या तो हार्डवेयर या सॉफ्टवेयर में, इसकी गणना की जाती है CurrentLevel / TotalLevel, जहां दोनों ही सम्मिलित हैं। यदि ऐसा है, तो इसके परिणामस्वरूप एक फ्लोट होगा जो कि एक से अधिक है 1 / TotalLevel। यदि आप दोनों उपकरणों से बहुत सारे बैटरी स्तर की रीडिंग लेते हैं, और गणना करते हैंbattery.level * n करते हैं कि आप n का मान पा सकते हैं, जहां सभी परिणाम पूर्णांक के करीब होने लगते हैं, जो आपको iPad2TotalLevelऔर iPadMiniTotalLevel

यदि वे दो नंबर अलग-अलग हैं, और पारस्परिक रूप से प्राइम हैं, तो उत्पादन में आप गणना कर सकते हैं battery.level * iPad2TotalLevel और battery.level * iPadMiniTotalLevel। जो भी एक पूर्णांक के करीब है वह इंगित करेगा कि किस उपकरण का उपयोग किया जा रहा है।

इस उत्तर में ifs की संख्या के बारे में क्षमा करें! उम्मीद है कि कुछ बेहतर होगा।


18

संपादित करें 1: मेरा मूल उत्तर, नीचे, "यह मत करो" है। सकारात्मक होने के हित में:

मुझे लगता है कि असली सवाल, आईपैड एक्स बनाम आईपैड मिनी से कोई लेना-देना नहीं है। मुझे लगता है कि यह यूआई तत्व आयामों को अनुकूलित करने और उपयोगकर्ता के एर्गोनॉमिक्स के लिए प्लेसमेंट के बारे में है। आपको अपने UI तत्व को आकार देने के लिए उपयोगकर्ता की उंगली / एस का आकार निर्धारित करने की आवश्यकता है, और, शायद, स्थिति। यह, फिर से, है और शायद वास्तव में यह जानने की आवश्यकता के बिना पहुंचना चाहिए कि आप किस उपकरण पर चल रहे हैं। अतिरंजना करते हैं: आपका ऐप 40 इंच की विकर्ण स्क्रीन पर चल रहा है। मेक एंड मॉडल या DPI नहीं जानते। आप नियंत्रणों को कैसे आकार देते हैं?

आपको एक बटन प्रदर्शित करने की आवश्यकता है जो साइट / गेम में गेटिंग तत्व है। मैं आपको यह तय करने के लिए छोड़ दूँगा कि यह कहाँ या कैसे करना है।

हालांकि उपयोगकर्ता इसे एक ही बटन के रूप में देखेंगे, वास्तव में यह छोटे कसकर भरे हुए बटन के एक मैट्रिक्स से बना होगा जो नेत्रहीन रूप से एकल बटन छवि के रूप में दिखाई देता है। एक 100 x 100 पिक्सेल बटन की कल्पना करें जो 400 बटन से बना है, प्रत्येक 5 x 5 पिक्सेल। आपको यह देखने के लिए प्रयोग करने की आवश्यकता है कि यहां क्या समझ में आता है और आपके नमूने कितने छोटे होने चाहिए।

बटन सरणी के लिए संभव सीएसएस:

.sense_row {
  width:100px;
  height:5px;
  margin:0;
  padding:0;
}

.sense_button {
  float:left;
  width:3px;
  height:3px;
  padding:0px;
  margin:0px;
  background-color:#FF0;
  border:1px solid #000;
} 

और परिणामस्वरूप सरणी:

बटन सरणी

जब उपयोगकर्ता आपके द्वारा प्रभावी ढंग से बटन सरणी को छूएगा, तो उपयोगकर्ता की उंगली के संपर्क क्षेत्र की एक छवि प्राप्त करें। फिर आप संख्याओं के एक सेट पर पहुंचने के लिए जो भी मानदंड चाहते हैं (संभवतः अनुभवजन्य रूप से व्युत्पन्न) का उपयोग कर सकते हैं जिसका उपयोग आप अपनी आवश्यकताओं के अनुसार विभिन्न यूआई तत्वों को स्केल करने और करने के लिए कर सकते हैं।

इस दृष्टिकोण की सुंदरता यह है कि आप इस बात की परवाह नहीं करते हैं कि आप किस उपकरण का नाम या मॉडल देख रहे हैं। आप सभी के बारे में परवाह करते हैं कि डिवाइस के संबंध में उपयोगकर्ता की उंगली का आकार है।

मुझे लगता है कि इस sense_array बटन को आवेदन में प्रवेश प्रक्रिया के हिस्से के रूप में छिपाया जा सकता है। उदाहरण के लिए, यदि यह एक खेल है, तो हो सकता है कि "प्ले" बटन या उपयोगकर्ता के नामों के साथ विभिन्न बटन हों या वे किस स्तर पर खेलेंगे, इसका चयन करने का एक साधन है। आप विचार प्राप्त करते हैं। Sense_array बटन खेल में प्राप्त करने के लिए उपयोगकर्ता को कहीं भी छू सकता है।

संपादित करें 2: बस यह देखते हुए कि आपको शायद कई सेंस बटन की आवश्यकता नहीं है। संकेंद्रित वृत्तों या बटनों के एक विशाल तारक की तरह व्यवस्थित, *ठीक हो सकता है। आपको प्रयोग करना है।

अपने पुराने उत्तर के साथ, नीचे, मैं आपको सिक्के के दोनों ओर दे रहा हूं।

पुराने उत्तर:

सही उत्तर है: यह मत करो। यह एक बुरा विचार है।

यदि आपके बटन इतने छोटे हैं कि वे एक मिनी पर बेकार हो जाते हैं, तो आपको अपने बटन को बड़ा करने की आवश्यकता होती है।

अगर मैंने देशी आईओएस एप्स को करने में कुछ भी सीखा है तो यह है कि Apple को आउटसोर्स करने की कोशिश करना अनुचित दर्द और उत्तेजना के लिए एक सूत्र है। अगर उन्होंने आपको अपने डिवाइस की पहचान करने की अनुमति नहीं देने का विकल्प चुना है, क्योंकि, उनके सैंडबॉक्स में, आपको नहीं करना चाहिए।

मुझे आश्चर्य है, क्या आप पोर्ट्रेट बनाम परिदृश्य में आकार / स्थान को समायोजित कर रहे हैं?


रुको, क्या आपने प्रश्न पढ़ा है? "कुछ तत्वों को उपयोगकर्ता के अंगूठे या उंगली की स्थिति के सापेक्ष आकार में समायोजित किया जाता है"
ईसाई

मेरा प्रश्न इस बारे में था कि ओपी पोर्ट्रेट / लैंडस्केप ओरिएंटेशन के आधार पर तत्वों का समायोजन कर रहा है या नहीं। वेब ब्राउजर परिदृश्य की अतिरिक्त चौड़ाई के लिए ऑटो-एडजस्ट करेगा और पोर्ट्रेट से बड़ी सभी सामग्री को प्रस्तुत करेगा। मैं बस यह इंगित करने की कोशिश कर रहा हूं कि - जब तक आप सब कुछ बंद नहीं करते हैं - तब तक हर संभव डिवाइस, अभिविन्यास और उपयोगकर्ता के लिए अनुकूलित करने का कोई तरीका नहीं है जब तक कि आप एक मूल आईओएस ऐप नहीं लिख रहे हैं। फिर भी आप अपने द्वारा किए जाने वाले विकल्पों के बारे में सावधान रहना चाहते हैं। क्या यह वेब ऐप और जावास्क्रिप्ट से किया जा सकता है? शायद। मुझे नहीं लगता कि यह एक अच्छा विचार है।
मार्टिन का

ओह समझा। दिलचस्प संपादन भी, व्यवहार में ऐसा कुछ देखने को उत्सुक होगा।
क्रिश्चियन

1
एक "भावना सरणी" चाहेंगे कि यहां तक ​​कि काम? मुझे लगता है कि आईओएस जो भी सेल उठाएगा वह निकटतम है जहां उपयोगकर्ता ने छुआ और केवल "क्लिक" किया, न कि उपयोगकर्ता की उंगली के नीचे हर एक सेल। यदि यह किया काम, कि हालांकि बहुत लानत शांत हो सकता है,।
HellaMad

काम न करने का कोई कारण नहीं। यह वस्तुओं का एक समूह है जो घटनाओं को छूने और संदेश भेजने का जवाब देता है।
मार्टिन

11

एक माइक्रो बेंचमार्क के बारे में, कुछ की गणना करें जो iPad 2 पर लगभग X माइक्रोसेकंड लेता है और iPad मिनी पर Y सेकंड।

यह शायद बहुत सटीक नहीं है, लेकिन कुछ निर्देश हो सकते हैं कि iPad मिनी की चिप अधिक कुशल है।


11

हां, जाइरोस्कोप की जांच करना एक अच्छा बिंदु है। आप इसे आसानी से कर सकते हैं

https://developer.apple.com/documentation/webkitjs/devicemotionevent

या ऐसा कुछ

window.ondevicemotion = function(event) {
    if (navigator.platform.indexOf("iPad") != -1 && window.devicePixelRatio == 1) {
        var version = "";
        if (event.acceleration) version = "iPad2";
        else version="iPad Mini";

        alert(version);
    }
    window.ondevicemotion = null;
}​

इसका परीक्षण करने के लिए कोई भी आईपैड न रखें।


12
यह समाधान काम नहीं करता है (एक iPad मिनी और एक iPad 2 पर परीक्षण किया गया है: दोनों को "iPad2" के रूप में पाया जाता है) 1) Event.acceleration सुविधा काम करने के लिए डिज़ाइन की गई है यदि डिवाइस में फैंसी जाइरोस्कोप या सिर्फ पुराने एक्सीलरोमीटर है 2) Apple की वेबसाइट के अनुसार, iPad मिनी और iPad 2 दोनों में फैंसी जाइरोस्कोप हिस्सा है, इसलिए ऐसा कोई तरीका नहीं है कि इस चेक की अवधारणा ने पहले स्थान पर काम किया होगा।
जे। फ्रीमैन -सौरिक-

8

IPad2 उपयोगकर्ता एजेंट के साथ सभी उपयोगकर्ताओं को कैमरे में निर्मित फोटो का उपयोग करके आपूर्ति करने और HTML फ़ाइल एपीआई का उपयोग करके रिज़ॉल्यूशन का पता लगाने की आवश्यकता होती है । कैमरे में सुधार के कारण आईपैड मिनी तस्वीरें अधिक रिज़ॉल्यूशन वाली होंगी।

आप एक अदृश्य कैनवास तत्व बनाने के साथ भी खेल सकते हैं, और कैनवस एपीआई का उपयोग करके इसे पीएनजी / जेपीजी में बदल सकते हैं। मेरे पास इसका परीक्षण करने का कोई तरीका नहीं है, लेकिन परिणामी बिट्स अंतर्निहित संपीड़न एल्गोरिथ्म और डिवाइस के पिक्सेल घनत्व के कारण भिन्न हो सकते हैं।


7

आप हमेशा उपयोगकर्ता पूछ सकते हैं ?!

यदि उपयोगकर्ता बटन या सामग्री नहीं देख सकता है, तो उन्हें स्केलिंग को प्रबंधित करने का एक तरीका दें। आप हमेशा सामग्री (पाठ / बटन) को बड़ा / छोटा करने के लिए साइट पर कुछ स्केलिंग बटन बना सकते हैं। यह (लगभग) किसी भी वर्तमान आईपैड रिज़ॉल्यूशन के लिए काम करने की गारंटी होगी और संभवत: भविष्य के किसी भी रिज़ॉल्यूशन ऐप्पल का फैसला है कि वे बनाना चाहते हैं।


6

यह आपके प्रश्न का कोई जवाब नहीं है, लेकिन मुझे आशा है कि यह "ऐसा मत करो" कहने से अधिक उपयोगी होगा:

आईपैड मिनी का पता लगाने के बजाय, यह क्यों नहीं पता लगाया जाता है कि एक उपयोगकर्ता को नियंत्रण से टकराने में एक कठिन समय हो रहा है (या: नियंत्रण के एक अधीनता में लगातार मार रहा है), और उन्हें समायोजित करने के लिए नियंत्रण के आकार को बढ़ने / सिकोड़ें?

जिन उपयोगकर्ताओं को बड़े नियंत्रण की आवश्यकता होती है, वे हार्डवेयर की परवाह किए बिना उन्हें प्राप्त करते हैं; जिन उपयोगकर्ताओं को बड़े नियंत्रण की आवश्यकता नहीं होती है और वे अधिक सामग्री देखना चाहते हैं, वे भी इसे प्राप्त करते हैं। यह केवल हार्डवेयर का पता लगाने के रूप में एक सरल नहीं है, और सही होने के लिए कुछ सूक्ष्म चीजें होंगी, लेकिन अगर यह सावधानी से किया गया तो यह वास्तव में अच्छा हो सकता है।


6

यह मुझे फिल्म संतुलन के एक उद्धरण की याद दिलाता है:

"आप क्या कहेंगे, क्या एक ग्रैमटन क्लेरीक से हथियार निकालने का सबसे आसान तरीका है?"

"आप इसके लिए उससे पूछते हैं।"

हम समाधान के लिए लड़ने के लिए अभ्यस्त हैं, जब कभी-कभी, यह पूछना बेहतर हो सकता है। (ऐसे अच्छे कारण हैं जो हम आमतौर पर ऐसा नहीं करते हैं, लेकिन यह हमेशा एक विकल्प होता है।) यहां सभी सुझाव शानदार हैं, लेकिन एक सरल समाधान यह हो सकता है कि आपका प्रोग्राम पूछें कि वे इसे शुरू करते समय किस आईपैड का उपयोग कर रहे हैं। ।

मुझे पता है कि यह एक चुटीले जवाब की तरह है, लेकिन मुझे आशा है कि यह एक अनुस्मारक है कि हमें हर चीज के लिए संघर्ष नहीं करना है। (मैं खुद को नीचे की ओर लटके हुए हूं।: पी)

कुछ उदाहरण:

  • ओएस इंस्टॉलेशन के दौरान कीबोर्ड का पता लगाना कभी-कभी एक विशिष्ट कीबोर्ड का पता नहीं लगा सकता है, इसलिए इंस्टॉलर को पूछना पड़ता है।
  • विंडोज पूछता है कि क्या आप जिस नेटवर्क से जुड़ते हैं वह एक होम नेटवर्क है या एक सार्वजनिक नेटवर्क है।
  • कंप्यूटर उस व्यक्ति का पता नहीं लगा सकते हैं जो इसका उपयोग करने वाला है, इसलिए उन्हें एक उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होती है।

शुभकामनाएँ - मुझे आशा है कि आपको एक भयानक समाधान मिलेगा! यदि आप, हालांकि, यह मत भूलना।


यह कुछ गैर-तकनीकी उपयोगकर्ताओं के बारे में पता नहीं होगा हो सकता है।
जूलियन

5

सवाल का जवाब नहीं, लेकिन सवाल के पीछे का सवाल:

आपका लक्ष्य छोटी स्क्रीन पर उपयोगकर्ता के अनुभव को बेहतर बनाना है। UI नियंत्रण की उपस्थिति इसका एक हिस्सा है। UX का एक और हिस्सा है जिस तरह से एप्लिकेशन प्रतिक्रिया करता है।

क्या होगा यदि आप उस क्षेत्र को बनाते हैं जो आईपैड मिनी पर उपयोगकर्ता के अनुकूल होने के लिए बड़े टैप का जवाब देता है, जबकि यूआई के दृश्य प्रतिनिधित्व को बनाए रखते हुए छोटे से iPad पर मनभावन होने के लिए काफी हद तक नियंत्रित करता है?

यदि आपने पर्याप्त नल एकत्र किए हैं जो दृश्य क्षेत्र में नहीं थे, तो आप UI नियंत्रण को नेत्रहीन पैमाने पर तय कर सकते हैं।

एक बोनस के रूप में, यह iPad पर भी बड़े हाथों के लिए काम करता है।


5

यहां सभी समाधान भविष्य के सबूत नहीं हैं (जो ऐप्पल को आईपैड 2 के समान स्क्रीन आकार के साथ आईपैड जारी करने से रोकता है लेकिन आईपैड मिनी के समान रिज़ॉल्यूशन)। तो मैं एक विचार के साथ आया:

1 इंच चौड़ाई के साथ एक div बनाएँ और इसे शरीर में जोड़ें। फिर मैं 100% चौड़ाई के साथ एक और div बनाता हूं और इसे शरीर में जोड़ता हूं:

var div1= $("<div/>").appendTo(document.body).width("1in");
var div2= $("<div/>").appendTo(document.body).width("100%");

jQuery चौड़ाई () फ़ंक्शन हमेशा पिक्सेल में मान देता है ताकि आप बस:

var screenSize= div2.width() / div1.width();

स्क्रीनसाइज़ अब इंच में एप्लिकेशन के लिए उपलब्ध आकार रखती है (हालांकि इर्रिंग राउंडिंग इरोस )। आप अपने GUI को अपनी पसंद के अनुसार रखने के लिए इसका उपयोग कर सकते हैं। इसके अलावा बेकार divs को हटाने के लिए मत भूलना।

यह भी ध्यान दें कि Kaspars द्वारा प्रस्तावित एल्गोरिथम न केवल काम करेगा यदि उपयोगकर्ता एप्लिकेशन को पूर्ण स्क्रीन के रूप में चलाता है, लेकिन यह भी टूट जाएगा यदि Apple ब्राउज़र UI को पैच करता है।

यह उपकरणों को अलग नहीं करेगा, लेकिन जैसा कि आपने अपने संपादन में समझाया था कि आप वास्तव में क्या जानना चाहते हैं डिवाइस स्क्रीन का आकार है। मेरा विचार आपको वास्तव में स्क्रीन आकार भी नहीं बताएगा, लेकिन यह आपको एक और भी उपयोगी जानकारी देगा, वास्तविक आकार (इंच में) जो आपने अपने जीयूआई को खींचने के लिए उपलब्ध है।

संपादित करें: यह जांचने के लिए कि क्या यह वास्तव में आपके डिवाइस पर काम करता है, इस कोड का उपयोग करें। इसका परीक्षण करने के लिए मेरे पास कोई भी आईपैड नहीं है।

var div1= $("<div/>").appendTo(document.body).width("1in").height("1in").css("position", "absolute");
var div2= $("<div/>").appendTo(document.body).width("100%").height("100%").css("position", "absolute");
var width= div2.width() / div1.width()
var height= div2.height() / div1.height()
alert(Math.sqrt(width*width + height*height));

यह इंच में अपनी स्क्रीन के साथ एक विंडो पॉपअप करना चाहिए। यह मेरे लैपटॉप पर काम करने लगता है, 15.49 लौटाता है जबकि मेरी लैपटॉप स्क्रीन 15.4 '' के रूप में विपणन की जाती है। किसी को भी iPads पर इस परीक्षण और टिप्पणी कृपया पोस्ट कर सकते हैं? इसे पूर्ण स्क्रीन चलाने के लिए मत भूलना।

EDIT2: यह पता चला है कि मैंने जिस पृष्ठ का परीक्षण किया था उसमें कुछ परस्पर विरोधी सीएसएस थे । मैंने अब ठीक से काम करने के लिए टेस्ट कोड तय किया। आपको स्थिति चाहिए: divs पर निरपेक्ष ताकि आप% में ऊँचाई का उपयोग कर सकें।

EDIT3: मैंने कुछ शोध किए, और ऐसा लगता है कि वास्तव में किसी भी डिवाइस पर स्क्रीन का आकार प्राप्त करने का कोई तरीका नहीं है। यह ऐसा कुछ नहीं है जिसे ओएस जान सकता है। जब आप CSS में एक वास्तविक विश्व इकाई का उपयोग करते हैं तो यह वास्तव में आपकी स्क्रीन के कुछ गुणों के आधार पर एक अनुमान है। यह कहने की आवश्यकता नहीं है कि यह बिल्कुल सटीक नहीं है।


क्या आपने इसका परीक्षण किया है? क्या मिनी और आईपैड पर 1 इंच वास्तव में एक ही भौतिक 1 इंच है? यह संभव है कि मिनी पर 1 इंच केवल 1/2 इंच के रूप में दिखाई देता है।
कर्नेल जेम्स

IPad 2, 3 और मिनी पर परीक्षण किया गया। तीनों वापस 3.8125।
अल्फ्रेड

@AlfredNerstu वाह सच में? यह एक सफारी बग पता है? क्या आप इसे मैक के लिए सफारी पर परीक्षण कर सकते हैं?
हॉफमैन

@AlfredNerstu खेद है कि कोड गलत था, मैंने इसे अब ठीक कर दिया, जिस पृष्ठ पर मैंने मूल रूप से इसका परीक्षण किया था उसमें कुछ परस्पर विरोधी सीएसएस थे जो इसे थोड़े काम का बना रहे थे। यह पता चला है कि आपको स्थिति की आवश्यकता है:% में ऊंचाई मूल्यों का उपयोग करने के लिए div पर निरपेक्ष। अब वह कोड मेरे 15.4 '' लैपटॉप पर "क्लीन" पेज पर (बिना css और divs के अलावा कोई एलिमेंट्स नहीं) 15.49 इंच दे रहा है।
हॉफमैन

मैंने नए कोड की कोशिश की और अब सभी 2, 3 और मिनी सभी 9.5 लौटे। मैं एक jsfiddle में कोड चलाते हैं, अगर वह कुछ गड़बड़ कर सकता है पता नहीं है? अधिक संभावना शायद यह है कि आईओएस पर सफारी 9.7 इंच की स्क्रीन के लिए बनाया गया है और तदनुसार 1 इंच प्रदान करता है?
अल्फ्रेड

2

परीक्षण नहीं किया गया है, लेकिन एक ऑडियो फ़ाइल चलाने और शेष राशि की जांच करने के बजाय, यह माइक्रोफोन को सुनने, पृष्ठभूमि के शोर को निकालने और इसके "रंग" (आवृत्ति ग्राफ) की गणना करने के लिए काम कर सकता है। अगर आईपैड मिनी में आईपैड 2 की तुलना में एक अलग माइक्रोफोन मॉडल है, तो उनकी पृष्ठभूमि का रंग औसत रूप से अलग होना चाहिए और कुछ ऑडियो फ़िंगरप्रिंटिंग तकनीक आपको यह बताने में मदद कर सकती हैं कि कौन सा डिवाइस उपयोग में है।

मुझे गंभीरता से नहीं लगता कि यह संभव हो सकता है और इस विशिष्ट मामले में परेशानी के लायक हो सकता है, लेकिन मुझे लगता है कि पृष्ठभूमि के शोर को फ़िंगरप्रिंटिंग कुछ ऐप में इस्तेमाल किया जा सकता है, उदाहरण के लिए आपको यह बताने के लिए कि आप किसी भवन के अंदर कब हैं।


2

IPad 2 के बारे में डगलस के सवाल के आधार पर new webkitAudioContext().destination.numberOfChannelsमैंने कुछ परीक्षण चलाने का फैसला किया।

चेकिंग नंबरऑफचैनल्स 2आईपैड मिनी पर लौटे लेकिन आईओएस 2 पर आईओएस 5 के साथ और 2आईओएस 6 के साथ कुछ भी नहीं है ।

तब मैंने यह जांचने का प्रयास किया कि क्या webkitAudioContext उपलब्ध है

var hasWebkitAudio = typeof(webkitAudioContext) === "object";
alert(hasWebkitAudio);​

यहाँ iOS 6 के साथ iPad मिनी और iPad 2 सही है जबकि iOS 2 iOS 5 के साथ गलत है।

(यह परीक्षण डेस्कटॉप पर काम नहीं करता है, डेस्कटॉप जांच के लिए कि क्या webkitAudioContext एक फ़ंक्शन है)।

यहाँ आप को आज़माने के लिए कोड है: http://jsfiddle.net/sqFbc/


2

क्या होगा यदि आपने 1 "X1" चौड़ी डिव का एक गुच्छा बनाया और उन्हें एक-एक करके एक पैरेंट डिव में जोड़ दिया, जब तक कि बाउंडिंग बॉक्स 1 इंच से 2 इंच तक उछल न जाए? मिनी पर एक इंच iPad पर इंच के समान आकार है, है ना?


1
इसलिए मैंने यह कोशिश की, लेकिन मिनी पर, एक "इंच" नियमित आईपैड पर "इंच" से छोटा है। तो इस तरह से काम नहीं करेगा।
स्कूटेटा

2

IOS7 में एक सिस्टम-वाइड सेटिंग उपयोगकर्ता है जो ट्विक कर सकता है: जब चीजें पढ़ने के लिए बहुत छोटी हो जाती हैं, तो टेक्स्ट साइज़ सेटिंग को बदला जा सकता है।

उस पाठ आकार का उपयोग प्रशंसनीय आयामों के UI को बनाने के लिए किया जा सकता है, उदाहरण के लिए बटन के लिए (iPad मिनी रेटिना पर परीक्षण किए गए पाठ आकार सेटिंग परिवर्तन पर प्रतिक्रिया करने के लिए):

padding: 0.5em 1em 0.5em 1em;
font: -apple-system-body;    

( नमूना बटन CSS, jsfiddle और cssbuttongenerator के लिए धन्यवाद)


1

मैं एक iPad बनाकर iPad मिनी का पता लगा रहा हूं जो iPad मिनी को बड़ा कर सकता है , एक पिक्सेल भर सकता है और फिर रंग को वापस पढ़ सकता है। IPad मिनी रंग को '000000' के रूप में पढ़ता है। बाकी सब इसे रंग भरने के रूप में प्रस्तुत कर रहे हैं।

आंशिक कोड:

function rgbToHex(r, g, b) {
    if (r > 255 || g > 255 || b > 255)
        throw "Invalid color component";
    return ((r << 16) | (g << 8) | b).toString(16);
}
var test_colour = '8ed6ff';
working_context.fillStyle = '#' + test_colour;
working_context.fillRect(0,0,1,1);
var colour_data = working_context.getImageData(0, 0, 1, 1).data;
var colour_hex = ("000000" + rgbToHex(colour_data[0], colour_data[1], colour_data[2])).slice(-6);

मुझे कैनवास के आकार के लिए इसकी आवश्यकता है इसलिए यह मेरे उपयोग के मामले में फीचर डिटेक्शन है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.