4 Stimmen

C#-Zugriff auf mit dem iPhone erstellte Webpages

Ich versuche, auf Webseiten in C# zuzugreifen, die speziell für iPhones erstellt wurden. Ich habe entdeckt, dass man den User-Agent fälschen kann, um "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3" damit die Website Sie für ein iPhone hält.

Bei einigen Websites erhalte ich jedoch nur die Antwort, dass ich die Website erst zum Startbildschirm hinzufügen muss. Wenn ich mir die Antworten ansehe, scheint es, als würden sie eine Variable überprüfen "window.navigator.standalone" um zu sehen, wie die Webseite aufgerufen wurde. Nachdem ich gegoogelt hatte ( siehe hier ), scheint dies eine gängige Methode zu sein, um zu erkennen, ob die Webseite vom Startbildschirm aus aufgerufen wurde oder nicht.

Daher ist die Frage, weiß jemand, wie man den Rest einer Anfrage zu fälschen, so dass die Webseite geladen wird, anstatt ständig fragen, um zum Startbildschirm hinzugefügt werden?

3voto

Slappy Punkte 3932

Window.navigator.standalone ist ein Skripttest, der auf der Client-Seite durchgeführt wird, um zu prüfen, von wo aus die Website aufgerufen wurde (Startbildschirm oder Safari). Wenn der User Agent in der Anfrage gefälscht wird, kann die Website den Inhalt bereitstellen. Wenn die Website jedoch window.navigator.standalone abfragt, handelt es sich offensichtlich um eine falsche Antwort.

Sie haben nicht erwähnt, ob Sie die Skripte ausführen oder was Sie zu erreichen versuchen, so dass ich nur spekulieren kann, dass die Website, die Sie anfordern, so konzipiert ist, dass sie zuerst die Safari-Startversion rendert und dann beim Testen der Variablen alternative Anforderungen stellt.

Könnten Sie mehr Details nennen? Vielleicht die URL der Website, die Sie anfragen?

UPDATE:

Okay, dann habe ich Recht. Wenn dieses Skript nicht ausgeführt wird, sehen Sie die richtige Seite nicht. Ich gehe davon aus, dass Sie mit Ihren eigenen Anfragen zu tun haben. Was Sie tun müssen, ist eine weitere Anfrage als POST an Test.aspx mit Postdaten von hidHomeScreen=true zu senden, um so die Formularübermittlung zu emulieren.

Leider ist dies keine allgemeingültige Lösung, da die Erkennung je nach Standort unterschiedlich ausfallen kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X