All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sdklite.sphere.hybrid.HybridWebViewClient Maven / Gradle / Ivy

package com.sdklite.sphere.hybrid;

import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

import android.net.Uri;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import com.sdklite.sphere.hybrid.WebRequestInterceptorService;
import com.sdklite.sphere.logging.Logger;
import com.sdklite.sphere.logging.LoggerFactory;

/**
 * The hybrid web view client
 *
 * @author johnsonlee
 * @since 1.0.0
 */
public class HybridWebViewClient extends WebViewClient {

    static final Logger logger = LoggerFactory.getLogger("HybridWebViewClient");

    private final Map headers = new HashMap();

    private WebRequestInterceptorService service;

    public HybridWebViewClient(final HybridWebView view) {
        final WebSettings settings = view.getSettings();
        final Locale locale = Locale.getDefault();
        this.headers.put("User-Agent", settings.getUserAgentString());
        this.headers.put("Accept-Language", locale.getLanguage());
        this.service = WebRequestInterceptorService.getInstance();
    }

    @Override
    public void onLoadResource(final WebView view, final String url) {
        logger.trace("Loading %s", url);
    }

    @Override
    public WebResourceResponse shouldInterceptRequest(final WebView view, final String url) {
        return this.service.intercept(view, Uri.parse(url), this.headers);
    }

    @Override
    public void onReceivedError(final WebView view, final int errorCode, final String description, final String failingUrl) {
        logger.error("Load %s error: %s", failingUrl, description);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy