首頁 > web前端 > js教程 > 如何可靠地偵測 iOS 裝置上是否正在執行瀏覽器?

如何可靠地偵測 iOS 裝置上是否正在執行瀏覽器?

Linda Hamilton
發布: 2024-12-06 06:51:11
原創
226 人瀏覽過

How Can I Reliably Detect if a Browser is Running on an iOS Device?

識別 iOS 裝置

與功能檢測相反,該問題旨在建立一種方法來確定瀏覽器是否在 iOS 裝置上運行。儘管功能檢測很重要,但檢測 iOS 裝置的必要性源於它們對影片的獨特處理,正如相關 Stack Overflow 討論中所強調的那樣。

偵測方法

瀏覽裝置偵測領域,我們遇到兩種方法:

  1. 使用者代理嗅探:此方法依賴檢查瀏覽器的用戶代理字串以識別設備類型。然而,值得注意的是這種方法的潛在陷阱:

    • 用戶代理可能會被用戶或瀏覽器擴充功能欺騙。
    • iOS 13 iPad 現在顯示與macOS 相同的用戶代理13
  2. 功能推斷: 此技術利用不同iOS 版本的已知功能可用性時間表。例如,我們知道:

    • History API 在iOS 4 中引入
    • matchMedia API 在iOS 5 中首次亮相
    • webAudio API 在iOS 6 中推出
    • webAudio API 在iOS 6 中推出
    WebSpeech API 在iOS中出現7

注意:

此方法依賴這些功能在未來的 iOS 版本中不會被棄用的假設。

實現檢測

function iOS() {
  return [
    'iPad Simulator',
    'iPhone Simulator',
    'iPod Simulator',
    'iPad',
    'iPhone',
    'iPod'
  ].includes(navigator.platform)
  // iPad on iOS 13 detection
  || (navigator.userAgent.includes("Mac") && "ontouchend" in document);
}
登入後複製
要檢測iOS 設備,您可以使用以下方法代碼:

function iOSversion() {

  if (iOS) {
    if (window.indexedDB) {
      return 'iOS 8 and up';
    }
    if (window.SpeechSynthesisUtterance) {
      return 'iOS 7';
    }
    if (window.webkitAudioContext) {
      return 'iOS 6';
    }
    if (window.matchMedia) {
      return 'iOS 5';
    }
    if (window.history && 'pushState' in window.history) {
      return 'iOS 4';
    }

    return 'iOS 3 or earlier';
  }

  return 'Not an iOS device';
}
登入後複製
要檢測iOS 版本,您可以使用以下程式碼(但請注意其限制):

以上是如何可靠地偵測 iOS 裝置上是否正在執行瀏覽器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板