AC1D
AC1D

Reputation: 380

How to set useragent in TWebbrowser on IOS Delphi

I try set user agent via JS but it not works and UA isn't changing. Anybody can give me working solution?

// js:= 'function setUserAgent(t,e){if(t.navigator.userAgent!=e){var r={get:function(){return e}};try{Object.defineProperty(t.navigator,"userAgent",r)}catch(n){t.navigator=Object.create(navigator,{userAgent:r})}}}; setUserAgent(window, '''+UA+''');';
    js:='Object.defineProperty(navigator, ''userAgent'', {get: function () { return "'+UA+'"; }});';

    WebBrowser.EvaluateJavaScript(js);

Upvotes: 0

Views: 461

Answers (1)

Dave Nottage
Dave Nottage

Reputation: 3602

uses
  iOSapi.Foundation, Macapi.Helpers;

function StandardUserDefaults: NSUserDefaults;
begin
  Result := TNSUserDefaults.Wrap(TNSUserDefaults.OCClass.StandardUserDefaults);
end;

function StrToObjectID(const AStr: string): Pointer;
begin
  Result := NSObjectToID(StrToNSStr(AStr));
end;

procedure SetUserAgent;
var
  LUserAgentDict: Pointer;
begin
  LUserAgentDict := TNSDictionary.OCClass.dictionaryWithObject(StrToObjectID('Mozilla/Fake version 123.4.beta'), StrToObjectID('UserAgent'));
  StandardUserDefaults.registerDefaults(TNSDictionary.Wrap(LUserAgentDict));
end;

Change the value for the user agent to suit

Upvotes: 2

Related Questions