簡體   English   中英

標頭無法在WebView Android中使用

[英]Headers not working in WebView Android

我是一名Android程序員,但有一個問題已經嘗試解決了一段時間:

我使用webview,並傳遞標頭以從Web刪除頁腳和標頭 ,但是在進行重定向時標頭會丟失。

public void isLogged() {

    if (my_preferences.readElement(TAG_LOGGED, false)) {
        WebSettings webSettings = web_pagos.getSettings();
        webSettings.setJavaScriptEnabled(true);
        web_pagos.loadUrl(url, getCustomHeaders());
        web_pagos.setWebViewClient(getWebViewClient());
        cancelProgress();


    } else {
        WebSettings webSettings = web_pagos.getSettings();
        webSettings.setJavaScriptEnabled(true);
        web_pagos.setWebViewClient(getWebViewClient());
        web_pagos.loadUrl(url,getCustomHeaders());
        cancelProgress();

    }

}



private Map<String,String> getHeader()
{
    Map<String,String> header = new HashMap<>();
    header.put("nx-bodycss", "app-design");
    return  header;

}


private WebViewClient getWebViewClient()
{

    return new WebViewClient()
    {

        @Override
        @TargetApi(Build.VERSION_CODES.LOLLIPOP)
        public boolean shouldOverrideUrlLoading(android.webkit.WebView view, WebResourceRequest request)
        {
            view.loadUrl(request.getUrl().toString(), getHeader());
            return true;
        }

        @Override
        public boolean shouldOverrideUrlLoading(android.webkit.WebView view, String url)
        {
            view.loadUrl(url, getHeader());
            return true;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            Log.e("ConsultaPasaporte",url);
            super.onPageStarted(view, url, favicon);
        }
    };
}

這是我的方法getCustomHeaders

private Map<String, String> getCustomHeaders()
{
    Map<String, String> headers = new HashMap<>();
    if(my_preferences.readElement(TAG_LOGGED,false)) {

        headers.put("nx-bodycss", "app-design");
        headers.put("nx-user-identification", MyApplication.get_dataUser().getIdentificacion());
        headers.put("nx-user-fecha-pago", MyApplication.get_dataUser().getPago());
        headers.put("nx-user-token",MyApplication.getTokenFirebase());
        return headers;
    }else{
        headers.put("nx-bodycss", "app-design");
        headers.put("nx-user-token",MyApplication.getTokenFirebase());


        return headers;
    }
}

我已經嘗試解決這個問題一段時間了。 我將非常感謝您的幫助🙏🏻

傳遞標頭以使用重定向的正確方法是什么?

事先非常感謝

您的getCustomHeaders()方法在哪里? 如果您要在loadUrl中發送標頭,那么它將被重定向到僅收到的第一個響應,此時您只需要從后端獲取它即可。 但是對於重定向,您將必須實現自定義請求/響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM