मैं कोशिश कर रहा हूँ अगर पता लगाने के लिए उपयोगकर्ता का उपयोग कर रहा है विंडोज 11 सेवा करने के क्रम में सही बायनेरिज़ जब वे क्लिक करें डाउनलोड बटन है । मैंने पाया है कि माइक्रोसॉफ्ट के सुझाव के लिए यह कैसे करना है यहाँ. वे का उपयोग करने का सुझाव navigator.userAgentData.getHighEntropyValues
समारोह देता है जो एक वादा युक्त मंच के संस्करण. यहाँ कोड है वे सुझाव है कि:
navigator.userAgentData.getHighEntropyValues(["platformVersion"])
.then(ua => {
if (navigator.userAgentData.platform === "Windows") {
const majorPlatformVersion = parseInt(ua.platformVersion.split('.')[0]);
if (majorPlatformVersion >= 13) {
console.log("Windows 11 or later");
}
else if (majorPlatformVersion > 0) {
console.log("Windows 10");
}
else {
console.log("Before Windows 10");
}
}
else {
console.log("Not running on Windows");
}
});
मेरी समस्या यह है कि इस समारोह में अतुल्यकालिक है और रिटर्न एक वादा लौटने के बजाय मूल्य. मैं नहीं चाहता करने के लिए है परिवर्तित करने के लिए कोड के सभी मैं उपयोग पार्स करने के लिए उपयोगकर्ता एजेंटों के लिए हर मंच के लिए एक async समारोह.
सबसे पहले, मैंने सोचा कि मैं का उपयोग का इंतजार है का उपयोग करने के बजाय वादा इस तरह:
let ua = await navigator.userAgentData.getHighEntropyValues(["platformVersion"])
हालांकि, इस का मतलब है कि मैं की आवश्यकता होगी बनाने के लिए समारोह में शामिल है कि यह async. और के बाद से यह एक ही कोड पर काम करने की जरूरत नहीं करते कि पुराने ब्राउज़र समर्थन async और लोगों को कि नहीं, मैं ऐसा नहीं कर सकते.
वहाँ एक तरीका है पता लगाने के लिए अगर उपयोगकर्ता का उपयोग कर रहा है विंडोज 11 के बिना इस एपीआई? या इस का उपयोग कर एपीआई लेकिन एक तरह की आवश्यकता नहीं है कि async?