設為首頁收藏本站

 取回密碼
 註冊
搜尋
熱搜: Redump discuz
檢視: 158|回覆: 1

【教學】 Server 端如何判斷是否 Windows11

[複製連結]
發表於 2023年11月17日 14:47:35 | 顯示全部內容 |閱讀模式
在升級了 Windows11 系統之後,網站判斷系統版本時會用舊顯示使用的是 Windows10 系統,那這是怎麼回事呢?
造成這個問題的原因,主要是以往在開發這種判斷算法的時候,大多數開發者都會使用判斷 User-Agent 的形式來進行系統版本判斷,但是升級了 Windows11 之後,系統瀏覽器的 User-Agent 依舊還是 Windows10 的 User-Agent,下面是微軟官方給出的方法:

User-Agent 字串不會區分 Windows 11 和 Windows 10,或區分 CPU 架構。 我們不建議使用 User-Agent 字串來擷取使用者代理程式資料。 不支援用戶端提示 User-Agent 瀏覽器將無法區分 Windows 11 和 Windows 10,或 CPU 架構。


如何判斷系統版本呢?微軟的解決方法可以參考《使用User-Agent用戶端提示偵測Windows 11和 CPU 架構》,下面的程式碼僅列出分辨 Win10 還是 Win11 。
我們首先嵌入 Java Script 判定 majorPlatformVersion 是否大於等於 13,把結果寫進 cookie 或其他變數值 ,這兒使用寫入 cookie 的方法。

navigator.userAgentData.getHighEntropyValues(["platformVersion"])
 .then(ua => {
  if (navigator.userAgentData.platform === "Windows") {
   const majorPlatformVersion = parseInt(ua.platformVersion.split('.')[0]);
   if (majorPlatformVersion >= 13) {
    document.cookie = "win11=true;path=/"; 
   }
  }
 });

<?php
if(isset($_COOKIE['win11'])) {
 $win11 = true;
}
?>

作者文章推薦
發表於 2023年11月19日 13:43:00 | 顯示全部內容
感謝大大分享好教程
我要回覆
懶得打字嗎?讓本助手協助你 【使用進階編輯器請點選右方進階模式】
您需要登入後才可以回覆 登入 | 註冊

本版積分規則

手機版|Archiver|漁家小舖

GMT+8, 2024年10月14日 23:53 , Processed in 0.183703 second(s), 18 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回覆 返回頂端 返回清單