My website needs to be logged in to use it, so is there a way to save login data for the users so they will not log in every time they enter the WebView, like firebase, or cookies, etc?
If you need to share my code, please let me know.
Thank you.
Edit 1:
This is MainActivity.java file code:
package com.company.app;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
WebView webView;
SwipeRefreshLayout swipe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.webView).setVisibility(View.GONE);
swipe = (SwipeRefreshLayout)findViewById(R.id.swipe);
swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
WebAction();
}
});
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
WebView webview = new WebView(this);
WebSettings ws = webview.getSettings();
ws.setSaveFormData(true);
ws.setSavePassword(true); // Not needed for API level 18 or greater (deprecated)
WebAction();
}
public void WebAction(){
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// chromium, enable hardware acceleration
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else {
// older android version, disable hardware acceleration
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
String myURL = "https://www.myURL.com/";
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
WebView webview = new WebView(this);
WebSettings ws = webview.getSettings();
ws.setSaveFormData(true);
ws.setSavePassword(true); // Not needed for API level 18 or greater (deprecated)
webView.loadUrl(myURL);
swipe.setRefreshing(true);
webView.setWebViewClient(new WebViewClient(){
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
webView.loadUrl("file:///android_asset/error.html");
}
public void onPageFinished(WebView view, String url) {
// do your stuff here
swipe.setRefreshing(false);
findViewById(R.id.webView).setVisibility(View.VISIBLE);
}
});
}
@Override
public void onBackPressed(){
if (webView.canGoBack()){
webView.goBack();
}else {
finish();
}
}
}