00:00
好,这个布局呢,设置完以后,我们下边呢,就可以回到我们这个me frag的这个层面,哎,当用户发现呢,没有在没有登录过这个时候呢,我们就可以在这个位置呢,去让用户去做一个登录,登录这个操作呢,其实就是启动一个新的activity,我们刚才已经把这个逻辑呢写在base activity当中了,所以这块呢,我们就直接呢可以去调用一下我在me fragment当中。所以呢,得先这样,这次点。啊,这次呢,还还还成了这个这次了,现在就是me fragment.this.get activity。啊,这个IT获取到的是谁是T啊T我们想说,哎,那我直接呢,他不是继承我们的贝activity t呢,直接你去呃沟住一下,它掉不了啊,因为这时候他看到的是个activity t哈,Activity的话呢,本身没这个方法,所以你还必须得给做一个强转哈。
01:01
嗯,在这个位置扩一下,哎,你就生明一个贝,或者生明成一个may都可以,第二哎,Goto一个新的it啊,要去的呢,就是我们这个login activity没有数据,这样就行啊好,这样的话呢,我们就进入一个新的了,进入以后的话呢,我们就相当于接下来写逻辑,就开始来写他的逻辑了。他这个逻辑里边首先加载一下这个布局shift s。把这些组件呢,我们全提供一下。这个删掉停好以后的话呢,我们下面就来写了,首先呢,关于这个界面上的这个title的问题啊,这个呢,需要它显示这个呢,显示这个不要了。所以先把这个功能给大家搞定一下,IV back.set visibility啊vi.visible啊对TV,嗯,Title set一下test啊,用户登录啊IV这是一个setting set visibility啊view点这这不用杠。
02:12
告的话呢,它这个这个布局有没有了,所以就偏了啊对,因为ible这样。好设置一下它啊,嗯,这是设置这个功能,然后接下来的话呢,哎,我们呢,就开始考虑这个具体的关于这个in data的问题了啊,就是这里边呢,嗯,我们需要让用户做一个登录,登录就是点击它啊点击它那那好像跟跟这个也没啥关系哈,是不是相当于主要跟我们这个button去添加点击事件啊。啊,是这样啊,那当然你可以这样啊,CTRLC,我在这里边去设置一个on click listener也行,或者说的话呢,我们就是直接这样也行啊啊克啊二点ID点。BTN他们这个的这写一个就叫log,这样也行啊,这呢就相当我们这个按钮的一个点击事件。
03:13
好,下面呢,重点我们主要呢,就是来写这个login的这个操作,那login这个操作想一想我们应该怎么去做呀。不点登录。是不是首先呢,先获取一下用户在这个界面中写的这两个号啊,嗯,那这里边我们就可以写了啊,两个号的话呢,都是呃,ET的这个直接在这写啊,ET先是一个number.get test.to string点可以在tri一下把空格呢去掉。好e passwor.get test点点pass获取到这个信息以后的话呢,这个信息用户可能写的不全。
04:03
比如他写用户名没写密码,他就点登录,这呢是不是也把这个逻辑在本地呢,给他限制一下啊啊对啊啊,像这些操作,如果你要是在呃浏览器端写的话呢,像这些逻辑呢,就是GS的逻辑了啊,GS去实现这个逻辑啊,所以它是呃嵌到在这个前端的一个脚本语言啊,那我这里边呢,就可以这样test.is empty。嗯,这写一个非,就是他非空,并且第2EMPTY。这个也可控。哎,这个时候呢,表示它俩里边呢都有内容,那你写个else。啊UIU求点哎,透视一下说啊这个。啊,这个用户名或密码不能啊为空。
05:03
这样做一个提示,这样啊,当用户的用户名不为空的时候,我是不就可以拿着这个信息去联网啊,哎,那联网的话呢,诶,我们这里边呢,就得需要使用啊,我们用的整个啊应用都是用的think http client啊回头呢,大家下来你可以用这个叉,或者我们后边还要用这个KHTTP,到时候呢,用它做一个替换啊,其实用哪个联网框架都可以啊。嗯,那这里边儿呢,我们既然要联网,这个联网操作如果是一个通用的话,是不是你也可以放在这里边。以防这边大家就有点哆嗦是吧,嗯,跟写这个漏定配置哈,一写就感觉有点怕,那光写一个这个没事哈,这个你不用怕,我就写个public啊,Thinkp client plant,等于你有一个就光造个它,我就不写那个别的逻辑了。
06:01
那你就直接回过来到这儿用一下呗。哎,这个还行啊,哎,我就直接呢用这个了点我做一个post吧,嗯,这个后操作我们有参数了啊,所以我调了一个带参数,这个首先呢是一个URL,这些我们都在上面提供好。嗯,那这呢,先指明APP点,我要连的是。哎,这样的一个L啊,还是一样啊,看看我们这里边的这个啊,其实这些操作翻来覆去带你看,就是相当于让你知道后台这块是一个什么样的一个逻辑啊。啊,这样回头这个你你在跟这个后台在交互的时候呢,哎,就让他觉得,诶你好像也懂后台啊,他实际上呢,你也没怎么写后代码是吧。我要访问的呢,是这里边这个login啊,这个注册的时候这个login,哎,我们在这呢,已经封装成一个具体类啊,这类里边我们用的是这个它啊CTRLC。
07:07
嗯,就是这个ul,嗯,然后的话呢,我们还需要具体这个参数啊,你用一个request啊request。行哎,那这个parents里边呢,就需要去携带数据里边呢,其实还是一个map,我们就都给它放进去啊,这放进去你到底写这个K是什么,取决于哪,或者说我自己随便写。后边那个谁,张海峰啊,还有高鹏。不说话。拍拍精神精神啊。这个我写的话呢,随便写了你这个的话呢,就不能说我看了是你这个后,你俩得通啊,啊所以这块呢,也不是你决定的啊,就真正开发也不是你决定的,就是后台人家给你接口文档。
08:10
哎,接口文档去看,那就我们这就没有接口文档了啊,我直接呢就看后台了。呃,看后台找到我们的这个logol,看看它这块是怎么得的啊,他说叫get para phone get这个password啊,它叫这个哈,那我们相当已这里边放这个K的,放这个K的时候呢,是不是就得放这个啊,那我们就放它了,Put这个,嗯,咱们这呢叫number了,那那我就叫number了。嗯,这个再放一个。他叫password。哦哦,对,这这是。对,差。
09:03
这叫什么来着,脑子不好,这个这个能直接往这放吗?说诶为什么不能呢?哎,你这一整这是不是就这个数据就暴露了,哎,所以我们这呢得加密啊,加密我们前面也稍微提过,这个可以考虑在本地也可以呢,考虑在服务器这块加密啊,应该是放在本地,就相当于在这个网络传输过程当中,就是一个加密以后的数据啊,不能暴露出来,那这块呢,我们用的是MD5加密啊,大家呢,就是直接呢找到我们这个,那写好的这个工程里边找到这个YouTube。里边呢,有个MD5CTRLC。哎,这里边呢,找到这个结构,嗯CV粘过来,嗯这个的话呢,嗯就没有必要自己去写了啊就以后呢,这个就是也是拿现成的这个用就可以了,具体的这些算法怎么去实现,我们说了这是人家这个是吧。
10:04
什么数学家呀,什么家呀,花了很长时间几十年的心血是吧,研究出来的啊,这个你就直接拿来用就OK啊,所以呢,我们这个位置啊,我就不能这样去放了,所以我们应该调一下MD5U点调这个MD5啊PWD往这一放,诶就给我们返回一个32位的一个字符串构成的一个string。嗯,这返回来就是一个string行,拿着这个string呢,我们就往这一放,诶参数就有了哈,嗯,有了以后的话呢,我们下边就填首先呢这part,嗯是UR放进来,参数呢放进来,哎在后边呢,就new一个响应了啊啊single htp response。想一下。好,就在下边这些,相当于这时候呢,我们就嗯,我们这主要做的事情是不是发过去啊,哎,发过去呢,我们就有两种情况啊,一个呢叫success了啊,一个呢叫UN failure,这个failure呢,它其实代表的是联网没有成功。
11:13
对吧?啊,它代表联网没有成功UI点啊测一下说联网失败,就是比如说没有网啊,没有网的时候就报的是这个错啊一下。嗯,那这个呢,代表的是联网是成功的。呃,联网宠物这个响应其实是有好几种情况的,就是对我们应该在这说一下,这个contentent,就是能够走到我们这个on success这块的情况,就实际上呢,就是有响应,这就算是成功的啊啊这个响应里边呢,其实包括200,其实也会有这样的一些情况啊,啊也会有这样一些情况啊,我们这儿呢,其实没有处理的,那么呃,严密的说,你如果是200怎么着,如果404怎么着啊。
12:01
哎,我们这呢,就是默认都给它看成是个200这样成功的啊嗯,那如果是一个成功的话呢,我们就得是解析这个content里边的数据了。啊,那这个content数据的话呢,仍然通过接口文档,你可以看到这个content这个格式是什么。我们这呢还是看后台,因为没有文档,嗯看后台的话呢,诶看一下我这里边写的这个逻辑啊,这呢我用的是这个JDBC,哎封装在这个user do里边啊写增量检查,嗯把嗯用户从客户端发送过来的用户名啊不是不是手机号啊和这个密码,嗯拿着两个数据。我这呢使用一个user do,我呢去get一个instance,这个方法里边就封装了对我们数据库的这个表的一个调用,实际上就相当于在这里边呢,我写了一个是不是select的一个操作呀,啊,你想查什么东西,然后from叫user table啊,然后呢啊where啊,比如说你这个啊,Phone等于就刚才我们写的这个,然后and password等于这个,那如果这样一查,能够查到这个数据,说明用户是不是就登录成功了。
13:16
哎,就说明有这个数据啊,哎,所以这里边呢,我们就查一下返回的这个U啊,它靠不靠谱。啊反user call客户,如果你没有查到数据,那返回的时候呢,这个user就是一个闹啊,有数据的话呢,就不是no,所以呢,当你不是no说明呢就查到了,那说明用户呢,写的信息就靠谱,那我就将啊你当前这个用户的这些信息呢,给他返回回去。啊,返回给我们的这个客户端,这不就写出去了啊,那如果用户写的用户名或密码不对,那我就返回一个success是false,所以呢,到底是登录成功了还是没成功,是不是就根据这个success它的这个值啊,哎,这个就行,所以我们回过来,呃,在我们的这个里边,我这儿呢,就写上一个,是不是先得解析一下。
14:09
解析杰森杰森点pass一下,整个呢,其实还是一个杰森对象object content,跟我们前面这个套路一样啊,然后接我点,我们呢去get一个先布尔吧,这个布尔呢不是叫success。这能写一个小写的吧?这个success呢,就是我们刚才看到服务器这里边可能是这个false,也可能是这个处,那我们都是通过这个K找的,那行了,那我们下边if说如果success这呢是个to啊,那这呢就是个false,这个false意味着是什么意思啊,是不是用户名不存在或密码不正确啊,总之呢,就是你这两匹,嗯,就是这个问题啊。
15:10
实际上这个呢,我们现在这个网络就是登录的时候,基本上也都是这样处理的,其实我一直觉得这样处理的也不太好啊,其实应该再改一改,就是你到底告诉我到底是在是了,这个可以做可以做实就是细化一下啊,就相当于我们那你就在这查的时候呢,没查着,没查着的话,你查一下这个缝在不在是吧,不要这个。那就相当于你看有没有这个人,那要不呢,就是这个不要呢,查下密码在不在,因为有的时候我们登录一个网站时间太长了,我也确实忘了,我到底是呃登录过呀,或者注册过呀,还是说这个我密码给写不对了,不太确定,所以一般这种情况下,我都一般先注册一下,一般一注册发现这个说用户名已存在。
16:02
当然也可能不是我的是吧,嗯,所以我要用一个比较偏的一个名,如果他告诉我用户名已经存在,那我就觉得我应该是注册过了,他其实不如一开始提示我们的时候就提示特别清晰啊,啊,那你返回的时候呢,这个接串就更复杂一点了,接串里边就写明到底是不存在的情况,还是这个密码不对的情况啊,你这块呢,就分别去解析就可以,其实逻辑就复杂一点啊。那你要省事点的话呢,就是把它俩合在一起了啊,这是不存在,这呢是成功行,下面呢,我们就处理这个成功了,那用户都成功了,那你想想你要干什么事啊。嗯,成功的话呢,现在数据已经在我们的这个content里了,嗯,从这个服务器这块来看的话呢,是不是就放在这个data里了,我下面要把这个数据都取出来吧。
17:01
哎,现在这还是一个解析数据的过程。在这写一下。解析计算数据啊,解析它完以后呢,我们希望还是生成是不是一个对象呀,啊生成哎我们这呢就可以造个类啊user对象,那那这个对象你该保存就得保存了,所以这呢,我们先哎还是拿这个get点先get这论把这个data呢放进来。啊,这个data就是我们这里边儿的这个data啊。好得到,然后呢,再拿着我们这个大的这个杰森。点二哎,Pass一下,这呢直接就是个对象了啊,把这个data往这一扔,哎,那需要呢,它对应着我们一个类啊这个data的话呢,这里边这个建对的信息呢,是这样子的。嗯,在服务器这块呢,它有个user打开,其实这就满足,所以我们这呢,本地我就不自己扭了啊,我直接呢CTRLC一下,直接粘到我们自己这里边。
18:10
那就放这儿啊。好,有这样的一些信息,ID编号,Name password phone image ul头像,那个地址是不是公安部认证的?啊,这个意思是这样啊,就是我们p two b这个金融类这个项目的话呢,呃,你涉及到这个金钱的交易了啊,不管是这个接触者还是这个你借借入者也好啊,都需要呢,验证一下你的这个呃用户的呃姓名和你的这个身份证,身份证号,包括有的还需要你拿着身份证这个这个照一张照片啊,他去校验一下是不是这个本人。啊,那这个校验的工作的话呢,是需要调用公安部的这个接口。啊,以前有同学过来说,说公司让说这个去说验证这个用户信息呢,说是咋写啊,那这个呢,直接去调公安部这个接口就行啊,当然这个调用的话呢,呃,我记得是花钱的啊。
19:05
一次花多少钱,然后呢,告诉你成功了,失败了。是这样啊,那这个呢,你自己你也写不了啊,你拿个照片,你哪知道是不是他呀,你得去国家那公安部的那个数据库系统里边看看是不是这个。行,那这样的话呢,我们就得到这个user对象了,哎,得到这个对象以后的话呢,我们想做什么事啊,现在用户现在登录成功了,然后登录信息也有了,那你是不是那会儿的时候一进来就判断一下用户登录过没有,你这块用户都登录过了,也成功了,是不是应该保存一下。
20:01
哎,保存用户信息,保存用户信息这块呢,我们就可以写一个具体的方法啊,那这边这个方法的话呢,如果你在其他的类中也用了,那我们不妨呢,也可以写在这个复类当中,CTRLC一下我就写到这吧。保存用户信息public。Save user user,一个user。这个是不是很好写啊?嗯,哎,怎么着写。Get share这写什么,跟你当初这里边找的时候是不是应该用一个呀C。写这个contest。那这个。
21:01
SP拿到,然后SP呢,我们现在是要存对对。嗯,Edit,然后这个editor的话,我们往里边去写这个信息,写这个信息的话呢,我们这个user就是你保存的那个,就从服务器呢下载这个数据,这个数据里边呢,那我们不看它了啊,哎,就有这样的几项,一个两个三个四个,那我这儿呢就取这四项。啊,就取这四项就行啊,首先呢,通过这个edit点我们往里边去put string name,哎,拿这个user点的,这是一个。嗯,它的一个URL。嗯,这成啊。
22:01
这这个edit里边哪有put user?微微说能直接在这个editor这块put一个user吗?哎,咱们讲那个SP存储的时候,不是说它只能保存是不是有限这几种类型的呀,哎就这几种吗。是吧,所以呢,你这里边只能是把你这个像user对象,你把这个属性给它肢解成这样的几个属性,这样几个类型的才行。这这这这。
23:09
这样,然后最后这个一,这跟我们说这个事一样啊,说必须提交哎,否则保存不成功,哎这样好,这个呢叫保存用户的信息。写好了,嗯,保存用户信息,写完以后再回到我们刚才这个login这块,哎保存用户信息,咱们这呢就直接可以调一下叫save user,把这user呢就写到这,哎保存完了啊保存完以后呢,你目前还在这个界面上呢啊哎,我们这呢就可以怎么着呢叫加载面啊这我我就嗯调一下先一下,然后呢再goto一下啊may activity.class个这样写啊。
24:11
来,我们运行一下测试。好进来,哎,这个时候呢,我没有登录啊,他让我去登录,我确认一下啊,就跑到这来了,哎,我呢先这写一个,下边不写了点登录。嗯,设了一个飞哦,我这个位置。并且这是吧。很关键的一个。
25:15
嗯,进来,嗯,这写了一个,这没写。这不就提示这个反过来一样。哎,行好,这个是演示的,它然后呢,随便写一个,这个随便写一个啊,然后点登录。哎,不存在或密码不正确,因为咱这用的是本地的服务器哈,所以这个速度非踌快,直接就插过来了,正常的话应该有个延迟的,嗯,现在的话呢,我们写一个正常的13012341234啊注意这时候我们用到数据库了啊啊之前有的同学这块你你这个什么呀,这个GDVC这个配置文件,你的这个密码,你别跟我这个一样写你自己的。嗯,这个的话呢,就都可以,这呢就写127了,因为咱这个服务器啊,跟这个数据库的那都是调本地的啊,正常来讲的话,这个肯定是具体的一个新的地址,一个具体的地址啊在公司里。
26:13
行,这个呢,我写的是一个正确的啊,123456啊,现在本地呢,做一个M第五加密啊,加密完以后呢,发送给服务器点开登录啊一点。啊,重新加载了啊,这说明我们登录就成功了。啊,然后呢,我进入我的资产。哎,这个时候的话,我们进来他就没有提示我这个框。啊,那我再一进来是不是需要把用户刚才你保存那个信息在这呈现一下啊,哎,这是我们后边要做的一个事情啊,那其实这个时候呢,我们如果呃,通过我们这个呃,DDMS,你看本地文件呢,实际上就有,但是这个椰神吧,这个这个我一看这个它就掉,那一看它就掉线哈,所以用它呢,还不太好看,嗯,你要是想看的话呢,就得跑到这个里边啊,哎,拿它看就行。
27:03
那这个我们前面讲安卓技术其实都说过了是吧?哎,因为我这时候保存了,是不是一定可以在本地能够看到这个文件啊嗯,是的啊,那我这呢就不演示了,行,我们就先说到这儿先休。
我来说两句