社交软件开发5-客户端开发-android和ios验证登陆
欢迎订阅我的头条号:一点热
上一节,我们进行了社交软件开发4-服务器端-业务逻辑层和数据访问层的代码编写,通过数据库操作可以简单查验出是否有我们输入的账号和密码。那么这一节我将分两部分进行,第一部分介绍一下android客户端的手机登陆部分,下一节我们再开发Ios客户端登陆部分的开发,用于对上一节的服务器的代码进行测试。
知识准备:
android客户端的开发:
1、Java 环境的安装,主要是用于Android的开发。android studio的安装,具体情况,可以自己到Google官网下载,这里就不做详细的解释了。不过到时看看最好写好全部文章可以插入环境的安装的文章的。作为一个附录来展示。
Ios客户端的开发
1、Xcode的下载,这个是用于ios的开发。
开发语言:
android客户端:java
ios客户端:object c,这里声明,可以用swift,我的整个项目用object C。
开发环境:
MAC+android studio+xcode
可能会遇到的难题:
不知道如何安装Java环境,无法下载Android studio。这个大家可以自行解决,或者给我留言。关注我的头条号:一点热,给我回复。
下面开始今天的教程。
android客户端的设计:
1、打开Android studio,然后创建一个项目。file->new project.这是会弹出如下图的界面。
第一个是应用的名字,第一个字母大写,第一个是公司的域名,第三个包名,最后一个是项目的位置,我们的程序王软件,起的项目名字为:YeehotProgramKing ,如下图
点击next,我们直接支持最低版本为9,就是andriod 2.3
点击下一步,我们会看到一个活动界面的选择,这个界面就是启动的第一个界面,我们可以选择一个登陆的界面,这样就不要我们布局了。超级方便。如下图
下一步,就是登陆的名字和布局的XML文件的,我们直接默认,然后点击finish。
大概过了一会,我们的项目就创建好了,如下图,但是我们会发现下面出现有一个错误,说这个类需要API等级为11的,才可以用,这个接口我们可以不用他,把他注释掉,我们主要是用它的布局文件。
当然注释这个接口,也要把它的方法注释。
注释后,把这里改一改
private void populateAutoComplete() {
if (!mayRequestContacts()) {
return;
}
// if (VERSION.SDK_INT >= 14) {
// // Use ContactsContract.Profile (API 14+)
// getLoaderManager().initLoader(0, null, this);
// } else if (VERSION.SDK_INT >= 8) {
// // Use AccountManager (API 8+)
// new SetupEmailAutoCompleteTask().execute(null, null);
// }
new SetupEmailAutoCompleteTask().execute(null, null);
}
这个时候可以启动看看效果,我这里是直接真机看效果的了。模拟器太卡了。
这个界面就是我们登陆的界面,但是全部都是英文的信息,我们需要配置一下
在项目找到strings.xml,把信息改成项目的中文名字。
再次启动,我们可以看到如下的效果图
我们这个时候可以输入账号和密码测试,但是输入后会发现退出程序了。那是因为我们还没有实现网络的功能。我们还没有进行客户端登陆的操作。
接着我们进行网络部分的开发
我们可以直接用httpclient进行连接,但是我这里不用它,觉得太多东西要弄了,哈哈,这里推荐一个第三方的库android-async-http,它是支持异步操作的,非常方便,
我们打开gradle的配置文件输入compile '
com.loopj.android:android-async-http:1.4.9'
输入后,点击右上角的sync now,这个库就可以配置到项目里
具体使用方法大家可以上去github看看
https://github.com/loopj/android-async-http
接着我们编写一个登陆的方法,上一节我们已经写了邮箱和密码的服务器的访问了,我们这里直接输入上一节的服务器地址和参数,连接成功显示输入信息。代码如下:
public void login(String email,String passwd){
RequestParams params=new RequestParams();
params.put("email",email);
params.put("passwd",passwd);
client.get("http://192.168.3.4:8080/Yeehot-Program-King/user/login", params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
String result=new String(responseBody);
if (result!=null){
Toast.makeText(LoginActivity.this,result,Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(LoginActivity.this,"无法访问服务器",Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
}
看是不是很简单,这样就完成了一个登陆的连接了。
接着我们还要开始调用我们的方法。
我们在代码调用的attemptLogin();改成我们自己的登陆方法,找到如下代码,把它注释,
mAuthTask = new UserLoginTask(email, password);
mAuthTask.execute((Void) null);
把它改成
//showProgress(true);
// mAuthTask = new UserLoginTask(email, password);
// mAuthTask.execute((Void) null);
login(email, password);
再启动一下程序,输入邮箱和密码,发现 显示“无法访问服务器”,
查看控制台信息,说没有权限,我们需要在AndroidManifest.xml添加如下代码:
这个时候我们再编译程序,启动,输入邮箱和密码,可以看到弹出的信息,和我们上一节显示的信息一致。
如果正确的
如果错误
这一节,就写得这里,下一节我们讲解写一个ios的客户端进行简单的登陆验证。
欢迎订阅我的头条号:一点热,未经同意,请勿转载。