Android установил cookie для веб-просмотра для всех внутренних звонков - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь загрузить URL в WebView с каким-либо файлом cookie. Здесь я хочу установить cookie для всех внутренних обращений по URL. Я попытался установить cookie в onPageStarted WebViewClient, но он не устанавливает 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);
        }
    });
}

и вот как я загружаю URL

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

Я просто загружаю один URL, который будет загружать несколько внутренних ссылок. Я пытаюсь установить cookie для всех внутренних вызовов URL.

Спасибо, Noorul.

...