Przepraszam, sam bym to przetestował, ale obecnie nie mam mojego mac. Czy żądanie internetowe wykonane w interfejsie użytkownika UIWebView wysyła te same informacje o kliencie użytkownika, które byłyby wysyłane przez żądanie internetowe z mobilnego Safari?Czy usługa UIWebView wysyła tę samą aplikację użytkownika w nagłówkach żądania jako mobilne Safari?
Q
Czy usługa UIWebView wysyła tę samą aplikację użytkownika w nagłówkach żądania jako mobilne Safari?
28
A
Odpowiedz
31
Żądania sieciowe wykonane z UIWebView nie będą zawierać słowa "Safari" w ciągu znaków User Agent. Będą wysyłane żądania internetowe z Mobile Safari. Jest to najlepszy sposób, jaki znalazłem do określenia, czy żądanie pochodzi z aplikacji lub z Mobile Safari. Agencie
Próbka Użytkownik od UIWebView ciągu App:
User-Agent: Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile
Próbka User Agent z Mobile Safari:
User-Agent: Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari
11
Samodzielne Mobile Safari ciągi agenta użytkownika zawierają słowo 'Version', podczas gdy UIWebView agenta użytkownika łańcuchy nie. Tak więc skrypt wykrywania można zmodyfikować tak, aby działał z najnowszą wersją systemu iOS:
var is_uiwebview = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Version)/i.test(navigator.userAgent);
Powiązane problemy
- 1. Wyłącz tę samą zasadę pochodzenia w przeglądarce Safari Safari
- 2. Czy można kopiować żądania jako cURL w Safari?
- 3. Czy UIWebview JS Performance wolniej niż mobilne safari na iOS 6/7?
- 4. Otwarte linki w Safari zamiast UIWebVIew?
- 5. jQuery.ajax() wysyła żądania POST jako GET w rozszerzeniu do Chrome
- 6. System.Random nadal zwraca tę samą wartość
- 7. Policz tę samą wartość w tablicy
- 8. Zaktualizuj tę samą tabelę w SQL Server
- 9. Mobilne Safari na iPhone/iPodzie CSS hackowanie
- 10. Mobilne Safari wielokrotne przesyłanie z kamerą
- 11. Zamówienie LINQ. Czy zawsze zwraca tę samą uporządkowaną listę?
- 12. Omniture wysyła podwójne dane do przeglądarki Safari
- 13. Jak przetestować tę samą funkcję z wieloma tła w ogórku
- 14. Czy mogę wielokrotnie dodać tę samą funkcję DataRow do DataTable?
- 15. Czy wiele procesorów konkuruje o tę samą przepustowość pamięci?
- 16. Czy enable_shared_from_this i make_shared zapewniają tę samą optymalizację
- 17. Sprawdź, czy wszystkie elementy mają tę samą klasę
- 18. Czy canvas.getContext ("2d") zwraca za każdym razem tę samą instancję?
- 19. Jak udostępnić tę samą zmienną między modułami?
- 20. Czy wiele instancji sidekiq może przetwarzać tę samą kolejkę?
- 21. Jak zapobiec przechwytywaniu przez Safari 401 odpowiedzi na żądania ajax
- 22. Gitlab Wiki tę samą stronę linki
- 23. Czy biblioteki Scala mają tę samą konwencję odwróconej domeny, aby nazwać pakiety jako Java?
- 24. Jak wymienić tę samą postać kilka razy?
- 25. Stosując tę samą akcję dla wielu duszków?
- 26. W PHP można rozszerzyć klasę o tę samą nazwę?
- 27. fileystemwatcher jako usługa Windows?
- 28. Czasami interakcje użytkownika powodują utratę żądań ajax jQuery w UIWebView
- 29. zrobić tę samą przestrzeń między przyciskami w linelayout
- 30. C# Udzielanie uprawnień "Logowanie jako usługa" do użytkownika systemu Windows
Podgląd strony internetowej na Androida wysyła nagłówek http "X-Requested-With". Samodzielna przeglądarka tego nie robi. Czy iPhone UIWebView też to robi? zobacz http://stackoverflow.com/a/15254092/90236 –
Niestety ta odpowiedź kończy się niepowodzeniem w przypadku Chrome iOs. Są to UA dla Safari i Chrome. Obie zawierają "Safari" --- 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 jak Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53' --- 'Mozilla/5.0 (iPhone, CPU iPhone OS 7_1_1 jak Mac OS X) AppleWebKit/537.51.1 (KHTML, jak Gecko) CriOS/35.0.1916.38 Mobile/11D201 Safari/9537.53' –
@ bfred.it Nie mam zrozumieć swój komentarz. Pytanie to nie miało nic wspólnego z odróżnianiem różnych przeglądarek mobilnych od siebie nawzajem. Tylko odróżnianie wbudowanego interfejsu UIWebView od wbudowanej przeglądarki. – Johann