UserAgent ändern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • UserAgent ändern

    Hallo liebe [lexicon]Cordova[/lexicon] Freunde :)

    Ich bin mir sicher ihr habt schonmal etwas vom User Agent gehört. Vielleicht gabs hier diese Frage auch schon einmal. Doch gefunden habe ich leider nichts.
    Auch im Internet hat mir nichts geholfen. Alle Workarounds scheiterten.

    Und zwar:
    Wie kann ich den User-Agent String meiner App verändern???
    Im Netz gabs Methoden die in der Funktion didFinishLaunchingWithOptions von AppDelegate.m dies eledigen sollten.
    Oder mit Javascript navigator.__defineGetter__('userAgent',function() {return "NEW USER AGENT STRING"});
    Doch nichts funktionierte bis jetzt. Die Javascript Variante funktioniert überall nur nicht bei [lexicon]Cordova[/lexicon].

    Das muss doch irgendwie möglich sein!
    Jemand eine Idee?

    PS: Ich teste das alles ohne Game-[lexicon]Framework[/lexicon] etc. Nur HTML5, CSS3, JS Handarbeit.
  • Hallo @Appartig und herzlich Willkommen :)

    Zur Lösung Deines Problemes wären weitere Informationen hilfreich. Wie meinst Du das, dass Du ohne Game-[lexicon]Framework[/lexicon] testest? XCode hast Du aber installiert oder? Falls ja, in welcher Version? Auf Anhieb würde mir hier auch nur die didFinishWithLaunchOptions/AppDelegate.m einfallen.

    Quellcode

    1. // Modifizierung des Benutzernamens
    2. NSString* suffixUA = @" my nice user-agent suffix";
    3. UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero];
    4. NSString* defaultUA = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
    5. NSString* finalUA = [defaultUA stringByAppendingString:suffixUA];
    6. NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:finalUA, @"UserAgent", nil];
    7. [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary];


    Wie testest Du Deine Apps denn?

    Viele Grüße,
    Tammo
  • Danke für die Antwort.
    Ich habe mich etwas falsch ausgedrückt.
    Natürlich teste ich es mit [lexicon]cordova[/lexicon] und Xcode auf mein iPhone5s. Obj-C ist aber nicht so mein Ding. Doch das mit "didFinishWithLaunchOptions" habe ich bereits erfolglos getestet. Mit Game-[lexicon]Framework[/lexicon] meinte ich automatisch generierte Dateien (Javascript). Ich nutze nur jQuery um eine Website ohne [lexicon]IDE[/lexicon] etc. zu schreiben ohne. Es könnte ja sein das ein Game-[lexicon]Framework[/lexicon] wie Construct 2 das mit dem User Agent hinbekommt. Das habe ich noch nicht getestet. Ich weiß aber das Construct 2 in Verbindung mit Ejecta (ähnlich wie [lexicon]Cordova[/lexicon] nur ohne DOM, etc.) den User Agent verändern kann. Oder wahrscheinlich verwendet Ejecta schlicht den Projektnamen als User Agent. Aber es geht ja um [lexicon]Cordova[/lexicon].
    Es muss doch irgendwie möglich sein den UserAgent String zu ändern. - Am Wochenende werde ich mir das nochmal genauer ansehen.
  • Hey Appartig,
    versuch sonst mal den Code hier:

    Quellcode

    1. if (navigator.userAgent === undefined) {
    2. navigator.__defineGetter__('userAgent', function() {
    3. return("Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit");
    4. });
    5. }


    Hier noch eine andere Schreib- und Funktionsweise:

    Quellcode

    1. if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/)) {
    2. document.addEventListener("deviceready", onDeviceReady, false);
    3. } else {
    4. onDeviceReady(); //this is the browser
    5. }


    Ich konnte damit erfolgreich den UserAgent verändern. Würde mich über eine Rückmeldung freuen :)
  • @Tammo: Die Javascript Variante funktioniert nicht bei [lexicon]Cordova[/lexicon], aber am Computer. Allerdings scheint der navigator.userAgent ein anderer als der HTTP_USER_AGENT (PHP) zu sein.
    Egal, denn deine Variante in AppDelegate.m hat funktioniert. VIELEN DANK! :) Der HTTP UserAgent wurde somit verändert. Der Navigator UserAgent ist davon unbeeindruckt. Das ist mir aber egal. Ich finds nur interessant.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Appartig ()