Как мне сохранить вход пользователя в приложение WebView?

#java #android #progressive-web-apps

#java #Android #progressive-веб-приложения

Вопрос:

У меня проблема: WebView не регистрирует пользователя при закрытии и повторном открытии приложения. Таким образом, пользователю требуется каждый раз входить в систему.

Я искал разные решения, но ни одно из них не сработало. Я знаю, что это должно работать, потому что appsgeyser и другие веб-сайты предлагают эту функциональность в своем apk для PWA.

Мой mainactivity , также я использовал диспетчер файлов cookie и многое другое, но не работает.

 protected void onCreate(Bundle savedInstanceState) {
    //Set your theme before super.onCreate() to replace your previous theme of Manifest
    setTheme(R.style.AppTheme);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //TODO: add your MainActivity code here
    webView = (WebView)findViewById(R.id.webview);

    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    //webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
    webSettings.setDomStorageEnabled(true);
    webSettings.setDatabaseEnabled(true);
    webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    webSettings.setAppCacheEnabled(true);

    webSettings.setAllowFileAccess(true);


    webView.setWebChromeClient(new WebChromeClient(){});
    webView.setWebViewClient(new WebViewClient(){});

    webView.loadUrl("https://www.myapp.app");

}
  

Комментарии:

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

2. Привет, Марсело. Если у вас есть возможность выбора, используйте пользовательские вкладки Chrome вместо WebView, поскольку в нем используется общее хранилище файлов cookie (среди разных экземпляров Chrome), чтобы вы могли выполнить единый вход, который вы ищете.