Flutter中如何获取设备用户代理信息

Uda*_*ghe 5 dart flutter

我正在构建一个 flutter 应用程序,它需要随 http 请求一起发送用户代理信息。我正在使用http dart 包发送请求。如何在flutter中获取用户代理字符串并将其与http包一起使用?

Uda*_*ghe 4

我是通过调用flutter中的原生方法来完成的。首先你必须在android Main Activity中添加方法通道

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    GeneratedPluginRegistrant.registerWith(this);

    new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(
            new MethodChannel.MethodCallHandler() {
                @Override
                public void onMethodCall(MethodCall call, MethodChannel.Result result) {
                    if (call.method.equals("getUserAgent")) {
                        result.success(System.getProperty("http.agent"));
                    } else {
                        result.notImplemented();
                    }
                }
            });
}
Run Code Online (Sandbox Code Playgroud)

然后getUserAgent()可以在 flutter 中调用方法,如下所示

Future<String> _getUserAgent() async {
  try {
    return await platform.invokeMethod('getUserAgent');
  } catch (e) {
    return 'Unknown';
  }
}
Run Code Online (Sandbox Code Playgroud)