ডিভাইসটি আইওএস কিনা তা সনাক্ত করুন


408

আমি ভাবছি যে কোনও ব্রাউজার আইওএসে চলছে কিনা তা সনাক্ত করা সম্ভব কিনা আপনি মডার্নিজারের সাহায্যে সনাক্তকরণ বৈশিষ্ট্যটির অনুরূপ (যদিও এটি বৈশিষ্ট্য সনাক্তকরণের চেয়ে স্পষ্টতই ডিভাইস সনাক্তকরণ)।

সাধারণত আমি পরিবর্তে বৈশিষ্ট্য সনাক্তকরণের পক্ষে চাইব, তবে এই প্রশ্নটি অনুসারে যেভাবে তারা ভিডিও পরিচালনা করে তার জন্য কোনও ডিভাইস আইওএস কিনা তা আমার জানতে হবে ইউটিউব এপিডিয়া আইপ্যাড / আইফোন / নন-ফ্ল্যাশ ডিভাইসের সাথে কাজ করছে না


[আইওএস 5 ব্যবহারকারী-এজেন্ট স্ট্রিংটি কী?] [1] (সদৃশ?) দেখুন। [1]: stackoverflow.com/questions/7825873/...
dejuknow

1
এই ক্লায়েন্ট-সাইড বা সার্ভার-সাইড সনাক্তকরণ?
ডগলাস গ্রিনশিल्डস

আরে @ ডগলাস গ্রিনশিল্ডস, এটি ক্লায়েন্ট-সাইড
স্পারওয়াক হক

1
এছাড়াও, একটি সদৃশ নয়, আমি এটি কীভাবে করব তা জিজ্ঞাসা করছি। আমি এর আগে কখনও ব্যবহারকারীর এজেন্ট স্নিফিং ব্যবহার করি নি।
স্পারওয়াক হক

উত্তর:


821

আইওএস সনাক্ত করা হচ্ছে

আমি ব্যবহারকারী এজেন্ট স্নিফিংয়ের ভক্ত নই, তবে আপনি এটি কীভাবে করবেন তা এখানে:

var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;

আর একটি উপায় নির্ভর করে navigator.platform:

var iOS = navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);

iOSহয় হয় trueবা হয়false

কেন এমএসএস স্ট্রিম নয়

মাইক্রোসফ্ট কোনওভাবে জিমেইল চেষ্টা ও বোকা বানানোর জন্য আইই ১১ এর আইফোন শব্দটি ইনজেকশন দিয়েছে userAgent। অতএব আমাদের এটি বাদ দিতে হবে। এখানে এবং এখানে এই সম্পর্কে আরও তথ্য ।

নীচে আই 11 এর আপডেট করা আছে userAgent(উইন্ডোজ ফোন 8.1 আপডেটের জন্য ইন্টারনেট এক্সপ্লোরার):

মজিলা / ৫.০ (মোবাইল; উইন্ডোজ ফোন ৮.১; অ্যান্ড্রয়েড 4.0.০; এআরএম; ট্রাইডেন্ট / .0.০; টাচ; আরভি: ১১.০; আইইএমবাইল / ১১.০; নোকিয়া; লুমিয়া _0৩০) আইফোন ওএস _0.০_3 ম্যাক ওএস এক্স অ্যাপলওয়েবকিট / 7৩7 (গেকোর মতো কেএইচটিএমএল) মোবাইল সাফারি / 537


নিয়মিত এক্সপ্রেশন ব্যবহার না করেই সহজেই আরও ডিভাইস যুক্ত করুন:

function iOS() {

  var iDevices = [
    'iPad Simulator',
    'iPhone Simulator',
    'iPod Simulator',
    'iPad',
    'iPhone',
    'iPod'
  ];

  if (navigator.platform) {
    while (iDevices.length) {
      if (navigator.platform === iDevices.pop()){ return true; }
    }
  }

  return false;
}

iOS()হয় হয় trueবা হয়false

দ্রষ্টব্য: উভয়ই navigator.userAgentএবং navigator.platformব্যবহারকারী বা ব্রাউজার এক্সটেনশান দ্বারা নকল হতে পারে।


আইওএস সংস্করণ সনাক্ত করা হচ্ছে

আইওএস সংস্করণ সনাক্তকরণের সর্বাধিক সাধারণ উপায় হল এটি ব্যবহারকারী এজেন্ট স্ট্রিং থেকে পার্স করা । তবে বৈশিষ্ট্য সনাক্তকরণ অনুমানও রয়েছে * ;

আমরা একটি সত্য যে জানি history APIচালু হয় iOS4 - matchMedia APIমধ্যে iOS5 - webAudio APIমধ্যে iOS6 - WebSpeech APIমধ্যে সহ iOS7 ইত্যাদি ..

দ্রষ্টব্য: নিম্নলিখিত কোডটি নির্ভরযোগ্য নয় এবং যদি এইচটিএমএল 5 বৈশিষ্ট্যগুলির কোনও একটি নতুন আইওএস সংস্করণে অবনতি হয় তবে তা ভেঙে যাবে। তোমাকে সতর্ক করা হল!

function iOSversion() {

  if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) {
    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';
}

2
ধন্যবাদ পিয়েরে - যদিও এই কোডটি আরও সহজ বলে মনে হচ্ছে, আমি কেবল বিস্মিত হয়েছি যে আমি আলাদা আলাদা আইড্যাভিসগুলি টাইপ না করে কেবল 'আইওএস' নির্দিষ্ট করতে পারি কিনা .... যদি (নেভিগেটর.উজারএজেন্ট.ম্যাচ (/ আইফোন / আই)) | | (নেভিগেটর.উসারএজেন্ট.ম্যাচ (/ আইপড / আই)) || (নেভিগেটর.উজারএজেন্ট.ম্যাচ (/ আইপ্যাড / আই)) {// কিছু করুন
Sp

9
দ্বিতীয় স্নিপেটে আপনি যা করছেন তা বৈশিষ্ট্য সনাক্তকরণ নয়, বৈশিষ্ট্য সনাক্তকরণ। বৈশিষ্ট্য সনাক্তকরণ হ'ল বৈশিষ্ট্যগুলি যা আপনি প্রকৃতপক্ষে ব্যবহার করতে যাচ্ছেন তা পরীক্ষা করছে, যেখানে আপনি যা করছেন এমন বৈশিষ্ট্যগুলি পরীক্ষা করে যা OS এর নির্দিষ্ট সংস্করণে প্রবর্তিত হয়েছিল এবং সেগুলি থেকে ওএস সংস্করণটি অনুমান করা হয়েছিল। এটি ভঙ্গুর কারণ ভবিষ্যতের আইওএসের সংস্করণগুলি এই বৈশিষ্ট্যগুলি সরিয়ে ফেলতে পারে।
টিম ডাউন

23
এটি আপনার চেকটি লেখার আরও ভাল উপায়:var iOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
ল্যান্ডনস্ক্রপ

5
কেবল একটি নোট - নেভিগেটর.প্ল্যাটফর্ম অ্যারে আইপ্যাড সিমুলেটরে কাজ করে না কারণ এটি প্ল্যাটফর্মের স্ট্রিংয়ে "আইপ্যাড সিমুলেটর" পুরো বাক্যাংশ রয়েছে।
কেভিন নিউম্যান

9
আইওএস 13 থেকে আইপ্যাডের ব্যবহারকারী এজেন্ট "ম্যাক ওএস" এ পরিবর্তিত হয়েছে, উদাহরণস্বরূপ: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15সুতরাং এই উত্তরটি আপডেট করা দরকার
zvi

38

আইওএস 13 এর পরে আপনার আইওএস ডিভাইসগুলি সনাক্ত করা উচিত, যেহেতু আইপ্যাডটি পুরানো উপায়ে আইওএস ডিভাইস হিসাবে সনাক্ত করা যাবে না (নতুন "ডেস্কটপ" বিকল্পগুলির কারণে, ডিফল্টরূপে সক্ষম):

let isIOS = /iPad|iPhone|iPod/.test(navigator.platform)
|| (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)

অক্ষম ডেস্কটপ মোড সহ আইওএস <13 বা আইফোন বা আইপ্যাডের জন্য প্রথম শর্ত, ডিফল্ট কনফিগারেশনে আইপ্যাডএস 13 এর জন্য দ্বিতীয় শর্ত, যেহেতু এটি ম্যাকিনটোস ইন্টেলের মতোই অবস্থান করে তবে বাস্তবে একমাত্র ম্যাকিনটোস মাল্টি টাচযুক্ত with

বরং আসল সমাধানের চেয়ে একটি হ্যাক, তবে আমার জন্য নির্ভরযোগ্যভাবে কাজ করুন

পিএস হিসাবে আগেই বলা হচ্ছে, আপনার সম্ভবত আইই চেকআপ যুক্ত করা উচিত

let isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&
!window.MSStream

কেন navigator.userAgentএই চেকটির জন্য ব্যবহার করবেন না /iPad|iPhone|iPod/.test(navigator.platform)? দেখে মনে হয় যে navigator.platformসর্বদা আইফোন আইওএসের জন্য 'ম্যাকইন্টেল' ফেরত দেয় <= 12
চারিস থিও

@ চ্যারিস থিও কারণ আইপ্যাড আইওএস এ ব্যবহারকারী এজেন্টে নেই> = 13
কেজারবিল

তবে আপনি ইতিমধ্যে দ্বিতীয় চেকটিতে আইপ্যাড আইওএস> = 13 অনুসন্ধান করছেন বা আমি কিছু অনুপস্থিত?
চারিস থিও

navigator.maxTouchPointsআইওএসে সমর্থিত নয়, যাতে চেকটি আপনার জন্য কিছু করে না।
পলিসি

@ পলসি, আপনি সঠিক যে ম্যাক্সটাচপয়েন্টগুলি আইওএস 12 এবং নীচের জন্য সংজ্ঞায়িত নয়, তবে কিকিওওড়া সঠিক পথে রয়েছে যেহেতু আইওএস 13 এ ম্যাক্সটাচপয়েন্টগুলি সমর্থিত আছে my আমার উত্তর দেখুন।
বব আরলফ

14

এই পরিবর্তনশীল সেট করে _iOSDeviceকরতে সত্য বা মিথ্যা

_iOSDevice = !!navigator.platform.match(/iPhone|iPod|iPad/);

3
কি করে !! না?
প্যাট্রিক

4
@ অ্যাস্ট্রোনেট ডাবল অস্বীকৃতি একটি বুলিয়ান
Vitim.us

2
@ এস্ট্রোনকেট ব্যাং ব্যাং, আপনি বুলিয়ান: ডি
কিউব্যাক

1
/iPhone|iPod|iPad/.test(navigator.platform)আপনি ব্যবহার করে!!
লায়োনেলো

10

আপনি যদি মডার্নজার ব্যবহার করছেন এটির জন্য একটি কাস্টম পরীক্ষা যুক্ত করতে পারেন।

আপনি কোন সনাক্তকরণ মোড (ইউজারএজেন্ট, নেভিগেটর.ভেন্ডার বা নেভিগেটর.প্ল্যাটফর্ম) ব্যবহার করার সিদ্ধান্ত নিয়েছেন তা বিবেচ্য নয়, আপনি পরে সহজে ব্যবহারের জন্য সর্বদা এটি মোড়তে পারেন।

//Add Modernizr test
Modernizr.addTest('isios', function() {
    return navigator.userAgent.match(/(iPad|iPhone|iPod)/g);
});

//usage
if (Modernizr.isios) {
    //this adds ios class to body
    Modernizr.prefixed('ios');
} else {
    //this adds notios class to body
    Modernizr.prefixed('notios');
}

2
সাবধান থাকুন, মডার্নিজার স্বয়ংক্রিয়ভাবে যুক্ত হওয়া পরীক্ষার নামটি ছোট করুন। (আপনার উদাহরণস্বরূপ, মডার্নআইজারআইআরআইওএস কখনই সত্যে ফিরে আসবে না)। আমার দৃষ্টিতে
লিবের

3
শুধু ক্ষুদ্র বিজ্ঞপ্তি: আপনি প্রক্রিয়া সহজ করতে return x ? true : falseকরতে return Boolean(x)বা শুধুreturn !!x
tibalt


6

একটি সরলীকৃত, সহজ সংস্করণ প্রসারিত।

var iOS = ['iPad', 'iPhone', 'iPod'].indexOf(navigator.platform) >= 0;

1
আপনার কাছে আইওএস সিমুলেটার কাজ এই চান তাহলে আপনাকে ব্যবহার করতে পারেন: navigator.platform.replace(' Simulator', '')
Koraktor

তবে এটি কাজ করে না, কারণ['str'].indexOf('string') == -1
টিপল্ট

navigator.platform হতে হবে ঠিক 'আইপ্যাড', 'আইফোন' বা 'আইপড' যদি না কাল্পনিক চলছে।
Kory নুন

4

আইওএস 13 চালিত আইপ্যাডগুলি navigator.platformসেট আপ হয়ে যাবে এর উত্তর সম্ভবত পাওয়া MacIntelদরকার যার অর্থ আপনাকে আইপ্যাডওএস ডিভাইসগুলি সনাক্ত করার জন্য অন্য কোনও উপায় খুঁজে বের করতে হবে।


3

আমি কয়েক বছর আগে এটি লিখেছিলাম তবে আমি বিশ্বাস করি এটি এখনও কার্যকর হয়:

if(navigator.vendor != null && navigator.vendor.match(/Apple Computer, Inc./) && navigator.userAgent.match(/iPhone/i) || (navigator.userAgent.match(/iPod/i))) 

    {

        alert("Ipod or Iphone");

    }

else if (navigator.vendor != null && navigator.vendor.match(/Apple Computer, Inc./) && navigator.userAgent.match(/iPad/i))  

    {

        alert("Ipad");

    }

else if (navigator.vendor != null && navigator.vendor.match(/Apple Computer, Inc./) && navigator.userAgent.indexOf('Safari') != -1)

    {

        alert("Safari");

    }

else if (navigator.vendor == null || navigator.vendor != null)

    {

        alert("Not Apple Based Browser");

    }

2

আইওএস ডিভাইসের ব্যবহারকারী-এজেন্টরা তাদের মধ্যে আইফোন বা আইপ্যাড বলে। আমি কেবল এই কীওয়ার্ডগুলির উপর ভিত্তি করে ফিল্টার করি।


4
আইপড টাচগুলি বিবেচনার জন্যও রয়েছে।
ডগলাস গ্রিনশিल्डস

পুনঃটুইট এটি সম্পর্কে ভুলে গেছেন তবে আমি বিশ্বাস করি এটি ব্যবহারকারী-এজেন্টেও এটির পরিচয় স্থানান্তর করে।
ব্রায়ান নায়েগলে

আইপ্যাড সাফারির ব্যবহারকারী এজেন্ট আর আইপ্যাডএস 13 থেকে "আইপ্যাড" অন্তর্ভুক্ত করবে না
জনি

2

মডার্নিজার টেস্ট যুক্ত করার সময় যেখানেই সম্ভব আপনার ডিভাইস বা অপারেটিং সিস্টেমের পরিবর্তে কোনও বৈশিষ্ট্যের জন্য একটি পরীক্ষা যুক্ত করা উচিত। আইফোনের জন্য দশটি পরীক্ষা যুক্ত করার জন্য সমস্ত পরীক্ষার যোগ দেওয়ার কোনও সমস্যা নেই যদি তা হয় তবে। কিছু জিনিস কেবল বৈশিষ্ট্য সনাক্ত করা যায় না।

    Modernizr.addTest('inpagevideo', function ()
    {
        return navigator.userAgent.match(/(iPhone|iPod)/g) ? false : true;
    });

উদাহরণস্বরূপ আইফোনের (আইপ্যাড নয়) ভিডিও কোনও ওয়েবপৃষ্ঠায় ইনলাইন প্লে করা যাবে না, এটি পুরো স্ক্রিনটি খুলবে। সুতরাং আমি একটি পরীক্ষা 'নো-ইনপেজ-ভিডিও' তৈরি করেছি

তারপরে আপনি এটি সিএসএসে ব্যবহার করতে পারেন (আধুনিকীকরণ টেস্টে ব্যর্থ হলে ট্যাগটিতে একটি শ্রেণি যুক্ত .no-inpagevideoকরে <html>)

.no-inpagevideo video.product-video 
{
     display: none;
}

এটি আইফোনটিতে ভিডিওটি আড়াল করবে (আমি এই ক্ষেত্রে আসলে কী করছি ভিডিওটি চালাতে অনক্লিকের সাথে একটি বিকল্প চিত্র দেখানো হচ্ছে - আমি কেবল ডিফল্ট ভিডিও প্লেয়ার এবং প্লে বোতামটি প্রদর্শন করতে চাই না)।


iOS10 এখন এর জন্য অনুমতি দেয় playsinlineযাতে আপনি 'playsInline' in document.createElement('video');এখন পরীক্ষা হিসাবে ব্যবহার করতে পারেন github.com/Modernizr/Modernizr/issues/2077
সাইমন_উইভার

2

বাহ, প্রচুর দীর্ঘ কৌশলযুক্ত কোড code এটি সহজ রাখুন, দয়া করে!

এটি হ'ল আইএমএইচও দ্রুত, সংরক্ষণ এবং ভাল কাজ করছে:

 iOS = /^iP/.test(navigator.platform);

 // or, more future-proof (in theory, probably not in practice):

 iOS = /^iP(hone|[ao]d)/.test(navigator.platform);

 // or, if you prefer readability:

 iOS = /^(iPhone|iPad|iPod)/.test(navigator.platform);
  • এটি দ্রুত কারণ রেজিপ্সেক্স the গুলি পরীক্ষা করে প্ল্যাটফর্ম স্ট্রিং প্রথমে অবস্থান tarting এবং যদি কোন "IP" স্টপ (অপেক্ষাকৃত দ্রুত শেষ না হওয়া পর্যন্ত দীর্ঘ ইউএ স্ট্রিং মধ্যে অনুসন্ধানের চেয়ে যাহাই হউক না কেন)
  • এটি ইউএ চেকের চেয়ে নিরাপদ (ধরে নিলাম নেভিগেটর.প্ল্যাটফর্মটি কম নকল হওয়ার সম্ভাবনা রয়েছে)
  • আইফোন / আইপ্যাড সিমুলেটর সনাক্ত করে


আপডেট: এটি ডেস্কটপ মোডে আইপ্যাড কভার করে না (এবং তাই ডিফল্ট আইপ্যাডএস 13)।
আমার ব্যবহারকারীর ক্ষেত্রে এটি ঠিক আছে, যদি এটি আপনার পক্ষে না হয় তবে জাস্টিন এবং কিকিউওরের উত্তর দেখুন।


iOS = /^(iPhone|iPad|iPod)/.test(navigator.platform);এর পরিবর্তে আমি iOS = /^(iPhone|iPad|iPod)/.test(navigator.userAgent || navigator.vendor || navigator.platform); আমার ক্ষেত্রে নেভিগেটর
প্ল্যাটফর্মটি

navigator.platformকাজ হয়নি? আপনি কি তখন আইওএস-এ আছেন? Jeka.info/test/navigator.html সাথে পরীক্ষা করুন । userAgentমিথ্যা ইতিবাচক দেয় কারণ কিছু বিক্রেতারা যে কোনও কারণেই এটি অ্যাপল ডিভাইসগুলির নকল করতে নকল করে। vendorকেবলমাত্র হয় Google Inc., Apple Computer, Inc.বা কিছুই ফায়ারফক্সে দেয়।
জেজে

1

আরও কার্যকরী পদ্ধতির সাহায্যে প্রথম উত্তরটি সামান্য আপডেট করুন।

    const isIOS = [
      'iPad Simulator',
      'iPhone Simulator',
      'iPod Simulator',
      'iPad',
      'iPhone',
      'iPod',
    ].indexOf(navigator.platform) !== -1;

সাহসী / Chrome ডিভাইস মোবাইল সিমুলেটরে কাজ করে না। আমি পেয়েছিMacIntel
sdfsdf

1

এখানে আগের উত্তরগুলির মধ্যে কোনওটি আইওএস 13 সহ আইওএসের সমস্ত সংস্করণে সমস্ত বড় ব্রাউজারের জন্য কাজ করে না Here এখানে একটি সমাধান যা সমস্ত আইওএস সংস্করণে সাফারি, ক্রোম এবং ফায়ারফক্সের জন্য কাজ করে:

var isIOS = (function () {
    var iosQuirkPresent = function () {
        var audio = new Audio();

        audio.volume = 0.5;
        return audio.volume === 1;   // volume cannot be changed from "1" on iOS 12 and below
    };

    var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
    var isAppleDevice = navigator.userAgent.includes('Macintosh');
    var isTouchScreen = navigator.maxTouchPoints >= 1;   // true for iOS 13 (and hopefully beyond)

    return isIOS || (isAppleDevice && (isTouchScreen || iosQuirkPresent()));
})();

দ্রষ্টব্য যে এই কোড স্নিপেট সংক্ষিপ্ততা বা কর্মক্ষমতা নয়, পাঠযোগ্যতার উপর অগ্রাধিকার সহ লেখা হয়েছিল।

ব্যাখ্যা:

  • যদি ব্যবহারকারী এজেন্টে কোনও "আইপড | আইফোন | আইপ্যাড" থাকে তবে স্পষ্টতই ডিভাইসটি আইওএস। অন্যথায়, চালিয়ে যান ...

  • "ম্যাকিনটোস" না থাকা অন্য যে কোনও ব্যবহারকারী এজেন্ট কোনও অ্যাপল ডিভাইস নয় এবং তাই আইওএস হতে পারে না। অন্যথায়, এটি একটি অ্যাপল ডিভাইস, তাই চালিয়ে যান ...

  • যদি maxTouchPointsএর মান 1বা তার বেশি হয় তবে অ্যাপল ডিভাইসের একটি টাচ স্ক্রিন রয়েছে এবং তাই স্পর্শ স্ক্রিন সহ কোনও ম্যাক নেই বলে আইওএস হওয়া আবশ্যক (উল্লেখ করার জন্য কিকোওড়া থেকে কুকিও maxTouchPoints)। লক্ষ্য করুন maxTouchPointsহয় undefinedআইওএস 12 জন্য এবং নীচের, তাই আমরা যে দৃশ্যকল্প জন্য একটি ভিন্ন সমাধান প্রয়োজন ...

  • আইওএস 12 এবং এর নীচে ম্যাক ওএস-তে বিদ্যমান নেই qu উদ্দীপনাটি হল যে volumeকোনও Audioউপাদানটির সম্পত্তি ব্যতীত অন্য কোনও মানকে সফলভাবে সেট করা যায় না 1। এটি হ'ল অ্যাপল Audioআইওএস ডিভাইসের জন্য উপাদানটিতে ভলিউম পরিবর্তনের অনুমতি দেয় না , তবে ম্যাক ওএসের জন্য করে। কোনও ম্যাক ওএস ডিভাইস থেকে কোনও আইওএস ডিভাইসকে আলাদা করার জন্য চূড়ান্তটি চূড়ান্ত ফ্যালব্যাক পদ্ধতি হিসাবে ব্যবহার করা যেতে পারে।


0

আপনি ব্যবহার করতে পারেন includes

  const isApple = ['iPhone', 'iPad', 'iPod'].includes(navigator.platform)

-1

আমার ক্ষেত্রে ব্যবহারকারী এজেন্টটি ভাল ধারণা করা যায়নি, কারণ আইপ্যাডে ব্যবহারকারী এজেন্ট ম্যাক ওএসের মতো ছিল, তাই আমাকে একটি বাজে কৌশল করতে হয়েছিল:

var mql = window.matchMedia("(orientation: landscape)");

/**
 * If we are in landscape but the height is bigger than width
 */
if(mql.matches && window.screen.height > window.screen.width) {
    // IOS
} else {
    // Mac OS
}

আইওএস সনাক্ত করে, মোবাইল সনাক্ত করে না বলে কেবল প্রশ্নটি পড়ুন
সাইবারসুপার্নোভা

-2

আইওএস সংস্করণ সনাক্ত করতে, একজনকে জাভাস্ক্রিপ্ট কোডটির মতো ব্যবহারকারীর এজেন্টকে গঠন করতে হবে:

 var res = navigator.userAgent.match(/; CPU.*OS (\d_\d)/);
    if(res) {
        var strVer = res[res.length-1];
        strVer = strVer.replace("_", ".");
        version = strVer * 1;
    }

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.