网站首页 > 博客文章 正文
欢迎订阅我的头条号:一点热
上一节,我们进行了社交软件开发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添加如下代码:
<uses-permission android:name="android.permission.INTERNET"/>
这个时候我们再编译程序,启动,输入邮箱和密码,可以看到弹出的信息,和我们上一节显示的信息一致。
如果正确的
如果错误
这一节,就写得这里,下一节我们讲解写一个ios的客户端进行简单的登陆验证。
欢迎订阅我的头条号:一点热,未经同意,请勿转载。
猜你喜欢
- 2024-11-15 IntelliJ IDEA 2021.1正式发布!快来看看又有哪些神仙功能加入
- 2024-11-15 HarmonyOS开发:超详细介绍如何开源静态共享包,实现远程依赖
- 2024-11-15 微星武士66游戏本详细评测:亲民价位段的上品之作
- 2024-11-15 创建属于自己的第一个flutter项目
- 2024-11-15 Jetpack系列:应用内导航的正确使用方法
- 2024-11-15 Meta Quest App开发、调试、分析、优化工具汇总推荐
- 2024-11-15 在线等,我的 adb 找不到了(adb工具找不到设备)
- 2024-11-15 Android开发拾遗:如何减少重组(android原生开发)
- 2024-11-15 Android内存优化大盘点(android如何节省内存优化)
- 2024-11-15 Android中如何查看一个对象的回收情况 ?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)