flutter小技巧 - 抓包配置

931 阅读1分钟

flutter需要通过原生获取代理地址配置才能抓包,具体步骤如下 1.安卓原生全部代码

/**
 * 原生和flutter通讯交互
 */
class MainActivity : FlutterActivity() {
    var methodChannel: MethodChannel? = null
    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)
        methodChannel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "channelName")
        methodChannel!!.setMethodCallHandler { call: MethodCall, result: MethodChannel.Result ->
            //判断方法名是否支持
            if (call.method == "getProxy") {
                result.success(ProxyPlugin().getProxy())
            } else {
                //方法名暂不支持
                result.notImplemented()
            }
        }
    }

    /**
     * 获取代理
     */
    private fun getProxy(): String {
        val proxyAddress = System.getProperty("http.proxyHost", "")
        val portStr = System.getProperty("http.proxyPort", "")
        return "$proxyAddress:$portStr"
    }
}

2.flutter部分代码

getProxyUrl() async {
  const platform = MethodChannel("channelName");
  String result = await platform.invokeMethod("getProxy");
  return result;
}
//设置网络
DioNetwork dioNetwork = DioNetwork.internal();
//设置可以抓包
String url = await dioNetwork.getProxyUrl();
dioNetwork.setProxy(kReleaseMode, url);

配置完就可以抓包了。