Android为所有内部调用将cookie设置为webview

时间:2019-05-15 06:25:08

标签: android cookies android-webview android-cookiemanager

我试图用一些cookie在WebView中加载一个URL。 在这里,我想为所有内部网址匹配设置cookie。 我已经尝试在WebViewClient的onPageStarted中设置cookie,但是它没有正确设置cookie。 谁能帮我解决这个问题,

此处是WebViewClient的代码

 private void initDocsCustomWebView(View view) {
    //mWebView = (DocsCustomWebView) view.findViewById(R.id.docs_web_view);
    mWebView.setWebViewListener(mViewerActivity, this);
    mWebView.setGeolocationEnabled(false);
    mWebView.setMixedContentAllowed(true);
    mWebView.setCookiesEnabled(true);
    mWebView.setThirdPartyCookiesEnabled(true);
    mWebView.setScrollContainer(true);
    mWebView.setVerticalScrollBarEnabled(true);
    mWebView.setHorizontalScrollBarEnabled(true);
    mWebView.getSettings().setSupportMultipleWindows(true);
    mWebView.getSettings().setJavaScriptEnabled(true);


    CookieSyncManager.createInstance(view.getContext());


    mWebView.setWebViewClient(new WebViewClient() {


        @Nullable
        @Override
        public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {

            return super.shouldInterceptRequest(view, request);
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap icon) {

            if (view.getVisibility() == View.VISIBLE) {
                showLoader();
            }
        }

        @Override
        public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
            super.onReceivedError(view, request, error);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            String cookies = CookieManager.getInstance().getCookie(url);
            hideLoader();
        }
    });

    mWebView.setWebChromeClient(new WebChromeClient() {

        @Override
        public void onReceivedTitle(WebView view, String title) {
            super.onReceivedTitle(view, title);
        }
    });
}

这就是我加载网址

private void setWebViewURL(String previewURL, String cookie) {
    if (mWebView != null && NetworkUtil.isOnline()) {
        if (!webviewLoadingStarted) {
            mWebView.addHttpHeader(Constants.COOKIE_VALUE, cookie);
            mWebView.loadUrl(previewURL);
        }
    }
}

我只加载一个URL,这将在内部加载多个URL。 我正在尝试为所有内部url调用设置cookie。

谢谢, 诺鲁尔。

0 个答案:

没有答案