热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

androidwebview保存登录状态,我们可以在AndroidWebView中保存登录数据吗?

我的网站需要登录才能使用,是否可以为用户保存登录数据,这样他们每次进入WebView(例如Firebase或Cookies等)时都不会登录?如果您需要共享我的代码,请

我的网站需要登录才能使用,是否可以为用户保存登录数据,这样他们每次进入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;

@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();

}

}

}



推荐阅读
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Flutter 布局(四) Baseline、FractionallySizedBox、IntrinsicHeight、IntrinsicWidth详解
    本文主要介绍Flutter布局中的Baseline、FractionallySizedBox、IntrinsicHeight、IntrinsicWidth四种控件,详细介绍了其布局 ... [详细]
  • 第一步:PyQt4Designer设计程序界面该部分设计类同VisvalStudio内的设计,改下各部件的objectName!设计 ... [详细]
  • [翻译]PyCairo指南裁剪和masking
    裁剪和masking在PyCairo指南的这个部分,我么将讨论裁剪和masking操作。裁剪裁剪就是将图形的绘制限定在一定的区域内。这样做有一些效率的因素࿰ ... [详细]
  • fileuploadJS@sectionscripts{<scriptsrc~Contentjsfileuploadvendorjquery.ui.widget.js ... [详细]
  • 人脸检测 pyqt+opencv+dlib
    一、实验目标绘制PyQT界面,调用摄像头显示人脸信息。在界面中,用户通过点击不同的按键可以实现多种功能:打开和关闭摄像头, ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • 使用Flutternewintegration_test进行示例集成测试?回答首先在dev下的p ... [详细]
author-avatar
mobiledu2502920795
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有