2013-02-19 15 views
6

Ponieważ błąd kanwy w przeglądarce Samsung zapasów, mój program spowoduje błąd. (http://code.google.com/p/android/issues/detail?id=39247)Czy jest możliwe wykrycie przeglądarki Samsung zapasów

Dlatego chcę wyłączyć płótno we wszystkich przeglądarkach giełdowych Samsung.

Czy mogę go wykryć za pomocą obiektu nawigatora lub w inny sposób?

znalazłem to samo pytanie, ale to rozwiązanie nie wygląda idealny (javascript - regex matching devices on user agent)

Wiki pokazuje Samsung ma więcej modeli. (http://en.wikipedia.org/wiki/Samsung_Galaxy_S_III)

+0

wykrywanie funkcji stosowania nie przeglądarki wąchania. Jest łatwiejsze i co się stanie, jeśli w przyszłym tygodniu Samsung będzie go wspierać? – charlietfl

+1

Ale obsługuje Canvas, po prostu ma błąd. – Sam

+1

może prawdopodobnie zbudować test wsparcia, niezależnie od tego, kiedy błąd zostanie naprawiony nie będzie wykluczeniem tych użytkowników – charlietfl

Odpowiedz

0

użycie userAgent wystarczy, aby wykryć ten błąd. Wyszukaj ciąg 534.30. Na przykład:

if (window.navigator && window.navigator.userAgent.indexOf('534.30') > 0) { 
    // Clear the canvas a different way because they are using a known-bad version of the default android browser 
    } 
+0

Dzięki. Czy numer "534,30" reprezentuje wersję WebKit? Jeśli tak, inni producenci urządzeń mobilnych mogą mieć ten numer również w usłudze userAgent. – Sam

+0

Tak, i jeden nie jest używany przez Chrome Mobile. Możesz sprawdzić zarówno numer, jak i webkit, aby być bezpieczniejszym. Ale możesz być zawsze "naprawdę w większości bezpieczny". –

+1

Dzięki. Ale to nie rozwiązuje mojego problemu. Inni producenci Androida mogą zostać wykryte w tej samej wersji, nie tylko Samsung. Przetestowałem mój program Canvas na przeglądarce plików Asus i HTC, działa świetnie! Tylko Samsung ma problem z płótnem. – Sam

0

Niektórzy agenci SAMSUNG mają słowo "Samsung" w nich. Jeśli znajdziesz "samsung" w ciągu znaków agenta użytkownika, jest to dobry wskaźnik. Jednak większość samsungów użytkowników, na które patrzyłem, nie zawierała słowa samsung. Ale jest inny test, wszystkie numery modeli Samsunga (do tej pory) są w formacie "GT-xxxxxx", więc sprawdzamy, czy agent użytkownika ma "android", a następnie "GT-" gdzieś w UA. (Lub słowo Samsung ...) Jest to oczywiście trochę luzu, ale wydaje się, aby złapać ich jak dotąd ok ....

0

Poniżej regex obejmuje prawie wszystkie telefony Samsung urządzeń.

if(navigator.userAgent.match(/SAMSUNG|Samsung|SGH-[I|N|T]|GT-[I|N]|SM-[N|P|T|Z]|SHV-E|SCH-[I|J|R|S]|SPH-L/i)) { 
    console.log("it's Samsung"); 
    // your code for samsung goes here ... 
} 
3

Można po prostu zrobić to

var isSamsungBrowser = navigator.userAgent.match(/SamsungBrowser/i) 
Powiązane problemy