JQuery ব্যবহার করে আইপ্যাড ব্যবহারকারীদের সনাক্ত করুন?


167

বর্তমান ব্যবহারকারী jQuery / জাভাস্ক্রিপ্ট ব্যবহার করে কোনও আইপ্যাড ব্যবহার করছে কিনা তা সনাক্ত করার কোনও উপায় আছে কি?

উত্তর:


317

আইপ্যাড সনাক্তকরণ

userAgentসম্পত্তিটি একবার দেখে আপনার কোনও আইপ্যাড ব্যবহারকারী সনাক্ত করতে সক্ষম হওয়া উচিত :

var is_iPad = navigator.userAgent.match(/iPad/i) != null;

আইফোন / আইপড সনাক্তকরণ

একইভাবে, platformআইফোন বা আইপডের মতো ডিভাইসগুলির জন্য যাচাই করার জন্য সম্পত্তি:

function is_iPhone_or_iPod(){
     return navigator.platform.match(/i(Phone|Pod))/i)
}

মন্তব্য

এটি কাজ করার সময়, আপনার সাধারণত ব্রাউজার-নির্দিষ্ট সনাক্তকরণ সম্পাদন করা উচিত কারণ এটি প্রায়শই অবিশ্বাস্য হতে পারে (এবং এটি ছদ্মবেশী হতে পারে)। এটি বেশিরভাগ ক্ষেত্রে প্রকৃত বৈশিষ্ট্য-সনাক্তকরণ ব্যবহার করা পছন্দ করে , যা মডার্নিজারের মতো লাইব্রেরির মাধ্যমে করা যেতে পারে ।

ব্রেনেনের উত্তরে নির্দেশিত হিসাবে , ফেসবুক অ্যাপের মধ্যে এই সনাক্তকরণটি সম্পাদন করার সময় সমস্যাগুলি দেখা দিতে পারে। এই দৃশ্যটি পরিচালনা করার জন্য দয়া করে তার উত্তর দেখুন।

সম্পর্কিত সম্পদ


9
হাহা, আপনি jQuery পদ্ধতির এবং জাভাস্ক্রিপ্ট পদ্ধতির মধ্যে একটি পার্থক্য তৈরি করছেন?
হারমেন

4
এটিতে 2 টি থাম্ব নিচে থাকবে কেন?
রকেট হাজমত

3
সমর্থন ফাংশনের ভিত্তিতে, এটি নেভিগেটর ব্যবহারকারী এজেন্ট ব্যবহার না করার জন্য এটি সনাক্ত করার কোনও পদ্ধতি আছে কি?
albanx

6
একটি টাইপো (আইপডের পরিবর্তে আইপ্যাড হওয়া উচিত) "এ" নয় "ও"।
সতীশ

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

22

যদিও গৃহীত সমাধান আইফোনগুলির জন্য সঠিক, এটি উভয়কেই ভুলভাবে ঘোষণা করে isiPhoneএবং isiPadফেসবুক অ্যাপ্লিকেশন থেকে তাদের আইপ্যাডে আপনার সাইটটিতে আসা ব্যবহারকারীদের পক্ষে সত্য হতে পারে।

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

আইওএস ডিভাইস থেকে এই ব্যবহারকারী এজেন্ট স্ট্রিংগুলির তুলনা করুন:

# iOS Safari
iPad: Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3
iPhone: Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

# UIWebView
iPad: Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/98176
iPhone: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Mobile/8B117

# Facebook UIWebView
iPad: Mozilla/5.0 (iPad; U; CPU iPhone OS 5_1_1 like Mac OS X; en_US) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.1.1;FBBV/4110.0;FBDV/iPad2,1;FBMD/iPad;FBSN/iPhone OS;FBSV/5.1.1;FBSS/1; FBCR/;FBID/tablet;FBLC/en_US;FBSF/1.0]
iPhone: Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; ru_RU) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.1;FBBV/4100.0;FBDV/iPhone3,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.1.1;FBSS/2; tablet;FBLC/en_US]

নোট করুন যে আইপ্যাডে, ফেসবুক ইউআইউইউভিউভিউর ব্যবহারকারী এজেন্ট স্ট্রিংয়ে 'আইফোন' অন্তর্ভুক্ত রয়েছে।

জাভাস্ক্রিপ্টে আইফোন / আইপ্যাড সনাক্ত করার পুরানো উপায়:

IS_IPAD = navigator.userAgent.match(/iPad/i) != null;
IS_IPHONE = navigator.userAgent.match(/iPhone/i) != null) || (navigator.userAgent.match(/iPod/i) != null);

আপনি যদি আইফোন এবং আইপ্যাড সনাক্ত করার জন্য এই পদ্ধতির সাথে যেতে চান তবে কোনও ব্যবহারকারী যদি কোনও আইপ্যাডে ফেসবুক থেকে আসে তবে আপনি IS_IPHON এবং IS_IPAD উভয়ই সত্য বলে মনে করবেন। এটি কিছু অদ্ভুত আচরণ তৈরি করতে পারে!

জাভাস্ক্রিপ্টে আইফোন / আইপ্যাড সনাক্ত করার সঠিক উপায়:

IS_IPAD = navigator.userAgent.match(/iPad/i) != null;
IS_IPHONE = (navigator.userAgent.match(/iPhone/i) != null) || (navigator.userAgent.match(/iPod/i) != null);
if (IS_IPAD) {
  IS_IPHONE = false;
}

উদ্ভট ফেসবুক ইউআইউইউভভিউ আইপ্যাড ব্যবহারকারী এজেন্টের জন্য কভার করতে আমরা আইপ্যাডগুলিতে IS_IPHONE কে মিথ্যা হিসাবে ঘোষণা করি। এটি কীভাবে ব্যবহারকারী এজেন্ট স্নিফিং অবিশ্বাস্য তার একটি উদাহরণ। যত বেশি আইওএস অ্যাপ্লিকেশনগুলি তাদের ব্যবহারকারী এজেন্টকে কাস্টমাইজ করবে, তত বেশি ব্যবহারকারী এজেন্ট স্নিফিংয়ের সমস্যা থাকবে। আপনি যদি ব্যবহারকারী এজেন্ট স্নিফিং এড়াতে পারেন (ইঙ্গিত: সিএসএস মিডিয়া ক্যোয়ারী), এটি করুন।


1
আপনি আপনার আইফোন / আইপড ম্যাচটিকে একক রেগেক্সের মতো একত্রিত করতে পারেন /iPh?o(ne|d)/i, বা /(iPhone|iPod)/iযদি আপনি কোনও আইপড প্রকাশিত হচ্ছেন: পি।
কবি

9

আমি এটি ব্যবহার:

function fnIsAppleMobile() 
{
    if (navigator && navigator.userAgent && navigator.userAgent != null) 
    {
        var strUserAgent = navigator.userAgent.toLowerCase();
        var arrMatches = strUserAgent.match(/(iphone|ipod|ipad)/);
        if (arrMatches != null) 
             return true;
    } // End if (navigator && navigator.userAgent) 

    return false;
} // End Function fnIsAppleMobile


var bIsAppleMobile = fnIsAppleMobile(); // TODO: Write complaint to CrApple asking them why they don't update SquirrelFish with bugfixes, then remove

থ্যাঙ্কস এটাই ছিল যা আমি খুঁজছিলাম।
techie_28

এটি ডেস্কটপে ব্যর্থ হয় কারণ যদি বিষয়বস্তু নাল দিয়ে কোনও জিনিস ফেরত পাওয়া না যায় তবে আমি দ্বিতীয় শর্তটি সংশোধন করে ভালভাবে কাজ করি: যদি (আরআর ম্যাচগুলি! = নাল) {সত্য ফিরে আসে; }
জো এল।

8

আমি এটি ব্যবহার:

//http://detectmobilebrowsers.com/ + tablets
(function(a) {
    if(/android|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(ad|hone|od)|iris|kindle|lge |maemo|meego.+mobile|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|playbook|silk/i.test(a)
    ||
    /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))
    {
        window.location="yourNewIndex.html"
    }
})(navigator.userAgent||navigator.vendor||window.opera);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.