Я разрабатываю приложение android для клиента, у меня есть веб-просмотр, который загружает внешние ссылки, некоторые страницы имеют форму с post action, я использую loadUrl (с переопределением), чтобы добавить extraHeaders (устройство тип и токен доступа), но с заголовком отправки теряется, и я получил ошибку 401. Примечание: я не могу внести большую модификацию на клиентский сайт, мне нужно найти решение с боковой стороны приложения Android.Android-приложение для просмотра веб-страниц, не работающее с extraheader
@SuppressLint("JavascriptInterface")
public void registerWebView() {
Log.i("ACC TOKEN", DataSave.getAccessToken());
mWebView = (AdvancedWebView) findViewById(R.id.mbrowser);
mWebView.addHttpHeader(Utils.HEADER_AUTHORIZATION_NAME, "Bearer " + DataSave.getAccessToken());
mWebView.addHttpHeader(Utils.HEADER_DEVICE_NAME, Utils.HEADER_DEVICE_VALUE);
mWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
Log.i("WV FILE", AdvancedWebView.isFileUploadAvailable() + "");
final GestureDetector gestureDetector = new GestureDetector(mContext, new GestureListener());
mWebView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
hideShareMenu();
return gestureDetector.onTouchEvent(event);
}
});
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
Log.i("WebView", "Got error !! " + errorCode);
}
public boolean shouldOverrideUrlLoading(WebView view, String urlT) {
Log.i("WebView", "Loading " + urlT);
if (urlT.contains(Utils.URL_ROOT)) {
view.stopLoading();
view.loadUrl(urlT, getExtraHeaders());
return true;
}else{
view.stopLoading();
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlT));
startActivity(browserIntent);
return false;
}
}
public void onPageFinished(WebView view, String url) {
handleNavigationUI(url);
}
});
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
mPublicationIcon = (ImageView)findViewById(R.id.publication);
mSearchActionBar = (RelativeLayout)findViewById(R.id.layout_find);
mSearchActionBarHeight = Utils.dpToPx(mContext, 40);
mSearchInput = (cEditText)findViewById(R.id.search_input);
mPublicationIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mWebView.loadUrl(Utils.URL_ROOT + Utils.URL_PUBLICATION);
toggleSearchbar(false, "");
togglePublicationIcon(false);
}
});
}
Вам нужно добавить код и контексты для других, чтобы помочь вам. –
Я добавил свой код registerWebView, я делаю загрузку url из класса меню. –