我的网站需要登录才能使用,是否可以为用户保存登录数据,这样他们每次进入WebVIEw(例如Firebase或cookies等)时都不会登录?
如果您需要共享我的代码,请告诉我.
谢谢.
编辑1:
这是MainActivity.java文件代码:
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;@OverrIDeprotected 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); } });}@OverrIDepublic voID onBackpressed(){ if (webVIEw.canGoBack()){ webVIEw.goBack(); }else { finish(); }}
}
@R_502_6120@:
我找到了答案.
我们只需要添加this.webVIEw.getSettings().setDomStorageEnabled(true);以及this.webVIEw.getSettings().setJavaScriptEnabled(true);.
现在,我们可以删除cookie代码,并保存数据和登录信息.
编辑:
如果它不起作用,请尝试不要删除cookie代码.
以上是内存溢出为你收集整理的我们可以在Android WebView中保存登录数据吗?全部内容,希望文章能够帮你解决我们可以在Android WebView中保存登录数据吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)