You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为移动设备测试应用修改FMX.WebBrowser的User Agent?

修改FMX.WebBrowser的User Agent(移动设备)

针对移动设备上的FMX.WebBrowser,可通过访问底层原生控件的方式修改User Agent,以下是安卓和iOS平台的具体实现方法:

安卓平台

FMX.WebBrowser在安卓端基于原生WebView控件,直接获取该控件实例即可设置自定义UA:

uses
  Androidapi.JNI.WebKit, Androidapi.Helpers;

procedure TMainForm.FormCreate(Sender: TObject);
var
  LWebView: JWebView;
begin
  // 确保WebBrowser已初始化完成
  if Assigned(WebBrowser1.Handle) then
  begin
    LWebView := TJWebView.Wrap(WebBrowser1.Handle);
    // 设置自定义User Agent字符串
    LWebView.getSettings.setUserAgentString(StringToJString('Mozilla/5.0 (Linux; Android 13; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36 CustomTestApp/1.0'));
  end;
end;

iOS平台

iOS端FMX.WebBrowser底层使用WKWebView(iOS 9及以上),可通过配置WKWebViewConfiguration或直接设置customUserAgent属性:

uses
  iOSapi.WebKit, Macapi.Helpers;

procedure TMainForm.FormCreate(Sender: TObject);
var
  LWebView: WKWKWebView;
begin
  if Assigned(WebBrowser1.Handle) then
  begin
    LWebView := TWKWKWebView.Wrap(WebBrowser1.Handle);
    // 方式1:直接设置完整User Agent
    LWebView.customUserAgent := StringToNSString('Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Mobile/15E148 Safari/604.1 CustomTestApp/1.0');
    
    // 方式2:在默认UA后添加自定义后缀
    // LWebView.configuration.setApplicationNameForUserAgent(StringToNSString('CustomTestApp/1.0'));
  end;
end;

验证方法

加载网页后,可通过执行JavaScript代码确认User Agent是否修改成功:

WebBrowser1.EvaluateJavaScript('navigator.userAgent', procedure(const AResult: string)
begin
  ShowMessage('当前UA:' + AResult);
end);

内容的提问来源于stack exchange,提问作者Yordan Yanakiev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 10:10:32