经常用httpclient请求的的情况下,一般就是用jsoup解析,去爬数据,用okhttp3实现cookie的保存。
这里做的是用okhttp3实现登录请求,然后直接将登录后可访问的页面Cookie同步加载到webview里面去。
将账号与密码保存到shareP ····下次打开webview就可以直接访问已登录页面了。
下面开始具体实现步骤:语言:kotlin,库: okhttp3 组件: webview
先看看一个简单的页面:第一次打开弹出一个账户,填写我们需要的账号与密码
保存到:SharedPreferences。下次登录自动调用login方法,利用okhttp3去请求登录页面。
下面会具体讲。
看看代码部分:首先会检查是否添加过账号,添加了就调用登录方法,没有就弹出对话框(这个对话框不可以返回,触摸关闭哦!)
val pr = getSharedPreferences("login_flag", Context.MODE_PRIVATE)
login_flag = pr.getString("login_flag","null")
if(login_flag == "null"){//检查是否添加过账户
Toast.makeText(this@MainActivity,"未添加过账户",Toast.LENGTH_SHORT).show()
val dialog = AlertDialog.Builder(this@MainActivity)
val tem_layout = layoutInflater.inflate(R.layout.add,null)
dialog.setView(tem_layout)//这里用的是对话框的自定义view,导入一个写好的布局
.setCancelable(false)//设置不可返回,或者触碰空白取消
.setTitle("添加账户")//用kotlin对象表达实现匿名类,重写监听器。
.setPositiveButton("确认",object:DialogInterface.OnClickListener{
override fun onClick(dialog: DialogInterface?, which: Int) {
val login_new_name = tem_layout.findViewById<EditText>(R.id.add_name)//这里要获取布局内部控件
val login_new_pass = tem_layout.find