2011-08-09 19 views
13

का उपयोग कर मोबाइल रीडायरेक्ट मैं एक कंपनी का विज्ञापन करता हूं, मूल रूप से मैं एक सहबद्ध हूं। मैं अपने मोबाइल दर्शकों को अपनी संबद्ध वेबसाइट के मोबाइल संस्करण पर रीडायरेक्ट करना चाहता हूं। मैं स्क्रीन रिज़ॉल्यूशन के साथ ऐसा करने की सोच रहा हूं। मूल रूप से, यदि स्क्रीन रेज़ोल्यूशन 800 x 600 से कम है, तो मेहमान मोबाइल फोन का उपयोग कर रहे हैं।स्क्रीन रिज़ॉल्यूशन

क्या यह एक अच्छा विचार है?

if ((screen.width < 800) && (screen.height < 600)) { 
    window.location = 'mobilesite'; 
    } 

Ty:

यहाँ कोड है!

+1

नहीं काम करता है। आईफोन 4 स्क्रीन रेज़ोल्यूशन 960x640 है। – gilly3

+0

ऐप्पल विंडोज के माध्यम से उन्हें देखकर सेब चुन सकता है। – Shaz

+0

बस पूरी साइट पर मोबाइल साइट पर एक लिंक डालें और इसके विपरीत - उपयोगकर्ताओं को यह तय करने दें कि वे किसका उपयोग करना चाहते हैं। – RobG

उत्तर

17

ब्राउज़र के उपयोगकर्ता-एजेंट को जांचना आम तौर पर अधिक सुरक्षित है, तब आप जानते होंगे कि वे एंड्रॉइड, आईफ़ोन, आईपैड, आईपॉड, नोकिया, ... पर हैं, और आपको सीधे अधिक लचीलापन दिया जाता है वहां से उपयोगकर्ता। मैं निम्नलिखित जावास्क्रिप्ट (शायद किसी अन्य स्रोत से उधार लिया गया) का उपयोग करता हूं:

var isMobile = function() { 
    console.log("Navigator: " + navigator.userAgent); 
    return /(iphone|ipod|ipad|android|blackberry|windows ce|palm|symbian)/i.test(navigator.userAgent); 
}; 

स्क्रीन चौड़ाई एक उपलब्ध तकनीक है। मैं आमतौर पर इसे सीएसएस मीडिया क्वेरीज़ के साथ उपयोग करता हूं, "डिवाइस-चौड़ाई" और "डिवाइस-ऊंचाई" के आधार पर सामग्री को बदलता है। जैसे

@media only screen and (max-device-width: 480px) { 
    /* For small devices, just CSS */ 
} 

स्क्रीन चौड़ाई/ऊंचाई की तकनीक के साथ जाने के लिए, इस Mozilla docs से है:

// crude way to check that the screen is at 1024x768 
if (window.screen.width < 1000) { 
    // resolution is below 10 x 7 
    window.location = 'm.mysite.com'; //for example 
} 

यहाँ बारे में गहराई से list of mobile screen resolutions

कुछ चेतावनियां: एक उपयोगकर्ता www.yoursite.com/events/15 को जाता है

  1. हैं, तो आप उपयोगकर्ता को सीधे वापस m.yoursite.com जा रहे हैं। मोबाइल डिवाइस पर किसी लिंक पर जाने का प्रयास करते समय यह बहुत निराशाजनक हो सकता है। आपको जावास्क्रिप्ट लाइब्रेरी द्वारा उचित URL को पुनर्निर्माण करने का प्रयास करना चाहिए (Crossroads.js देखें) या रीडायरेक्ट का उपयोग कर सर्वर पर।
  2. चूंकि मोबाइल डिवाइस प्रतिपादन और बातचीत में बेहतर होते हैं, इसलिए ध्यान रखें कि उपयोगकर्ता मोबाइल साइट, पूर्ण स्टॉप के बजाय मूल साइट को देखना पसंद कर सकते हैं। मुख्य साइट पर एक विधि वापस प्रदान करने का प्रयास करें।

    आशा है कि यह सब आपके समाधान को सुलझाने में आपकी सहायता करेगा!

+0

तु बहुत अधिक है। मैं उपयोगकर्ता एजेंटों से अवगत हूं, लेकिन उपयोगकर्ता एजेंट आते हैं और जाते हैं, मुझे यकीन है कि मैं उन सभी को कवर नहीं करता हूं। यही कारण है कि मैं स्क्रीन रिज़ॉल्यूशन का उपयोग करने के इच्छुक हूं। उदाहरण के लिए यदि किसी उपयोगकर्ता के पास 1024x 860 रिज़ॉल्यूशन वाला कोई प्रकार का टैबलेट है, तो मुझे रीडायरेक्ट करने की परवाह नहीं है ... इसका मतलब है कि वह अपनी साइट का अनुभव कर सकता है 100% – webmasters

+0

स्क्रीन चौड़ाई के आधार पर रीडायरेक्ट करने में कुछ भी गलत नहीं है। मैं बस उपयोगकर्ता प्रवाह, esp के बारे में बहुत सावधान रहना होगा। जब वे एक लिंक से आ रहे हैं (उदा। mysite.com पर नहीं, लेकिन mysite.com/something/else पर)। आपका समाधान अन्यथा महान काम करना चाहिए। याद रखें कि एक आईफोन उचित रूप से एक पृष्ठ प्रस्तुत कर सकता है जो उचित ज़ूमिंग के साथ 1024px चौड़ाई है। – ghayes

+0

नोट करें कि मोबाइल स्क्रीन संकल्पों के आपके लिंक में उनके वास्तविक रिज़ॉल्यूशन की सूची है, न कि वे 'window.screen.width' के माध्यम से रिपोर्ट करते हैं। रेटिना आईफोन "पिक्सेल दोगुना" करता है, इसलिए यह 320 पिक्सेल चौड़े की रिपोर्ट करता है, भले ही यह वास्तव में 640 है। – Eli

3

यदि आप किसी छोटी स्क्रीन के साथ किसी को पकड़ते हैं तो "पूर्ण साइट" के लिए एक लिंक जोड़ना सुनिश्चित करें।

इसके अलावा एल http://detectmobilebrowser.com/

की जाँच यह आप के लिए पता लगाने के निर्माण के लिए एक जादूगर है।

+0

+1 रखता है। – RobG

+0

महान साइट। धन्यवाद! –

0

सी # कोड:

string u = Request.ServerVariables["HTTP_USER_AGENT"]; 
    Regex b = new Regex(@"(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|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", RegexOptions.IgnoreCase | RegexOptions.Multiline); 
    Regex v = new Regex(@"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(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\-", RegexOptions.IgnoreCase | RegexOptions.Multiline); 
    if ((b.IsMatch(u) || v.IsMatch(u.Substring(0, 4)))) 
    { 
     Response.Redirect("http://Google.com"); 
    } 

परीक्षण किया & यह

संबंधित मुद्दे