YaBCK
YaBCK

Reputation: 3029

My application keeps on crashing using Webview?

I'm just testing my application at the moment. However, it keeps on crashing on the loading screen. Once it loads it redirects to the login or users account if they have already logged in.

However, I keep getting these error messages in android studios console log when built the application.

W/cr_CrashFileManager: /data/user/0/chrisbeckett.********/cache/WebView/Crash Reports does not exist or is not a directory

// I've put the stars as I can't show the name of the application yet. 
W/cr_AwContentsClient: Denied starting an intent without a user gesture, URI http://********.********.com/login

My current code:

package chrisbeckett.**********;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class MainActivity extends AppCompatActivity {

    private WebView mWebView;// Instance of WebChromeClient for handling all chrome functions.
    private volatile WebChromeClient mWebChromeClient;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mWebView = (WebView) findViewById(R.id.activity_main_webview);

        // Enable Javascript
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setDomStorageEnabled(true);
        webSettings.setJavaScriptEnabled(true);
        webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
        webSettings.setAppCacheEnabled(true);
        webSettings.setAppCacheMaxSize(100 * 1000 * 1000);

        mWebView.setWebChromeClient(new WebChromeClient());
        mWebView.loadUrl("http://********.*********.com/loading");
    }

    /**
     * Set the WebChromeClient.
     * @param client An implementation of WebChromeClient.
     */
    public void setWebChromeClient(WebChromeClient client) {
        mWebChromeClient = client;
    }
}

Further information:

My code works on all web browsers on a desktop when viewing it in a mobile mode in the inspector when testing before putting it in App format.

If you require any more information please let me know.

Upvotes: 5

Views: 13786

Answers (3)

pryde comp
pryde comp

Reputation: 11

 android:usesCleartextTraffic="true" in application tag

add above line in your manifest.xml file.

Upvotes: 1

Omkar
Omkar

Reputation: 3100

try below code this may work

mWebView.setWebViewClient(new WebViewClient() {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return false;                
    }

});

Upvotes: 10

SergeyYu
SergeyYu

Reputation: 374

You can use it for Android N

mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
    }

    @SuppressWarnings("deprecation")
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return false;
    }

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

Upvotes: 1

Related Questions