I'm using flutter_inappwebview + I need custom headers with all requests. Partly my problem is solved just by adding some headers to requests in native iOS/Android code.
InAppWebView.swift
var request = URLRequest(url: url)
if value != nil {
request.addValue(value!, forHTTPHeaderField: "some_key")
}
load(request)
InAppWebView.java
if (headers != null) {
loadUrl(url, headers);
return;
}
loadUrl(url);
for Android
But in case when page have Google reCaptcha - iOS works just fine. But non of those methods (like loadUrl(url, headers)) is called on Android.
This methods are called instead (in case if Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT
)
loadUrl("javascript:" + scriptToInject.replaceAll("[\r\n]+", ""));
and if higher
evaluateJavascript(scriptToInject, new ValueCallback<String>() {
@Override
public void onReceiveValue(String s) {
if (resultUuid != null || resultCallback == null)
return;
resultCallback.onReceiveValue(s);
}
});
I try adding headers here. But with no luck)
loadUrl("javascript:" + scriptToInject.replaceAll("[\r\n]+", ""), headers);
Any suggestions how to achieve desired behavior (custom headers after reCaptcha is done)?