Scusate, vorrei testarlo anch'io, ma al momento sono senza il mio mac. Una richiesta web fatta all'interno di una UIWebView invia le stesse informazioni utente-agente che una richiesta web fatta da Safari mobile avrebbe?UIWebView invia lo stesso agente utente nelle intestazioni di richiesta come Safari mobile?
28
A
risposta
31
Le richieste Web eseguite da UIWebView non includono la parola "Safari" nella stringa User Agent. Le richieste Web fatte da Mobile Safari lo faranno. Questo è il modo migliore che ho trovato per determinare una richiesta provenire da un'app o da Mobile Safari. Agente
Esempio utente da UIWebView all'interno di 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
Esempio User Agent da 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
autonomi Safari Mobile stringhe user agent contiene la parola 'Version', mentre user agent UIWebView le stringhe no. Quindi, lo script di rilevamento può essere modificato per funzionare con l'ultima versione di iOS in questo modo:
var is_uiwebview = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Version)/i.test(navigator.userAgent);
Problemi correlati
- 1. Browser che invia "Dalvik" come agente utente
- 2. IE 11 invia intestazioni utente-agente diverse a sottodomini diversi
- 3. Agente utente mobile Android?
- 4. Disabilita lo stesso criterio di origine in Mobile Safari
- 5. Agente utente HTTP Android
- 6. Funzionalità Webdriver remoto - agente utente per Mobile
- 7. Agente utente di Safari: quale versione di WebKit considerare attendibile?
- 8. Imposta intestazione richiesta e agente utente in Geb
- 9. Agente utente WebView
- 10. Aprire la richiesta in Safari con intestazioni HTTP personalizzate
- 11. Come CORS Permettere le intestazioni nelle vele
- 12. Pulsante Indietro in stile Safari mobile per UIWebView?
- 13. Agente utente personalizzato per HttpClient?
- 14. Agente utente personalizzato per una WebView
- 15. Agente utente iPhone
- 16. Invia UIWebView title a UINavigationBar
- 17. Quale agente utente HTTP fa pubblicità al mio programma iOS?
- 18. Richiesta http://mobile.twitter.com su UIWebView
- 19. Invia intestazioni lungo python
- 20. JQuery Mobile non funziona all'interno di UIWebView
- 21. Switcher agente utente per Chrome
- 22. Pulsante Indietro Safari mobile
- 23. Invia un modulo in UIWebView
- 24. OnSubmit con Mobile Safari
- 25. Agente utente predefinito in Wget
- 26. In che modo wsgi gestisce intestazioni di richieste multiple con lo stesso nome?
- 27. Modifica intestazioni HTTP per una richiesta JSONP
- 28. Intestazioni di condivisione di risorse di origine incrociata Intestazioni non funzionanti solo per safari
- 29. "using namespace" nelle intestazioni C++
- 30. Safari mobile: manifest di cache + audio
La webview di Android invia l'intestazione http "X-Requested-With". Il browser stand alone no. Anche l'UIWebView di iPhone fa altrettanto? vedi http://stackoverflow.com/a/15254092/90236 –
Purtroppo questa risposta non riesce con Chrome iOs. Questi sono gli UA per Safari e Chrome. Entrambi contengono "Safari" --- 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 come Mac OS X) AppleWebKit/537.51.2 (KHTML, come Gecko) Versione/7.0 Mobile/11D201 Safari/9537.53' --- 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 come Mac OS X) AppleWebKit/537.51.1 (KHTML, come Gecko) CriOS/35.0.1916.38 Mobile/11D201 Safari/9537.53' –
@ bfred.it Io non capisci il tuo commento La domanda non ha nulla a che fare con la distinzione tra browser mobili diversi l'uno dall'altro. Solo dalla distinzione di una UIWebView integrata dal browser integrato. – Johann