daydr3am3r
daydr3am3r

Reputation: 956

Kotlin - WebView not loading webpage

I have a WebView and I need to load a custom website in it. I created the WebView and tested it with google.com and it works just fine. However, with my website, it displays a white screen and that's it. No errors.

wvMainView!!.settings.setJavaScriptEnabled(true)
wvMainView!!.settings.setLoadWithOverviewMode(true);
wvMainView!!.settings.setUseWideViewPort(true);

wvMainView!!.webViewClient = object : WebViewClient()
{
    override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean
    {
        view?.loadUrl("https://www.google.com")
        return true
    }
}
wvMainView!!.loadUrl("https://www.google.com")

I also have the permissions in AndroidManifest:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

android:usesCleartextTraffic="true"

My guess is this is happening because my website is plain http, instead of https but I couldn't find a way to go around it. Any ideas on what I'm doing wrong here?

Upvotes: 0

Views: 738

Answers (1)

sunriver
sunriver

Reputation: 26

    webView.setWebViewClient(new WebViewClient() {

    @SuppressWarnings("deprecation")
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        Log.i(TAG, "loading: deprecation");
        return  true;
        //return super.shouldOverrideUrlLoading(view, url);
    }

    @Override
    @TargetApi(Build.VERSION_CODES.N)
    public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        view.loadUrl(request.getUrl().toString());
        Log.i(TAG, "loading: build.VERSION_CODES.N");
        return true;
        //return super.shouldOverrideUrlLoading(view, request);
    }

    @Override
    public void onPageStarted(
            WebView view, String url, Bitmap favicon) {
        Log.i(TAG, "page started:"+url);
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public void onPageFinished(WebView view, final String url) {

        Log.i(TAG, "page finished:"+url);

    }

    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError er) {
        handler.proceed();
    }

});

Upvotes: 1

Related Questions