Xcode4实现基于WebService用户登录iPhone程序 实例是本文完介绍的内容。最近论坛里面iphone开发的文章貌似多起来了,刚好我最近也在学Objective-c,忍耐不住寂寞啊,做了个登录Demo给将要入门的博友参考参考,也请大牛不腻赐教。好吧,我承认我才入门一个星期,上周才把mac系统装好。
需求很简单:
界面上有三个输入框,分别是服务器地址、用户名、密码(这里的服务器地址仅仅是为了我个人调试所用)
输入帐号密码,点击登录,如服务器地址有误提示则提示“服务器未相应”;
若登录成功,将用户名和密码以对话框的形式打印出来;
若登录失败,提示返回信息;
在iphone手机上大多软件都免不了登录吧,当然iphone程序又不像.Net那样,可以很方便的操作数据库,所以这里采取Web API的方式。首先用vs创建一个WebService,这个很简单,代码如下:
- ///
- /// 验证用户登录
- ///
- ///
- 用户名称
- ///
- 用户密码
- /// 返回验证结果
- [WebMethod]
- public String CheckLoginUserInfo(string userName, string pwd)
- {
- XmlDocument document = new XmlDocument();
- Func func = new Func((nodeName, innterText) =>
- {
- XmlNode node = document.CreateNode("element", nodeName, "");
- node.InnerText = innterText;
- return node;
- });
- XmlNode rootElem = func("result", "");
- XmlNode data = func("data", "");
- String isSuccess = "0";
- if (userName == "test" && pwd == "123456")
- {
- isSuccess = "1";
- data.AppendChild(func("truename", "测试人员1"));
- data.AppendChild(func("userroleid", "1"));
- data.AppendChild(func("depid", "2"));
- data.AppendChild(func("depname", "编辑中心-要闻编辑部"));
- data.AppendChild(func("paperid", "3"));
- data.AppendChild(func("papername", "解放日报"));
- }
- else
- {
- data.AppendChild(func("message", "帐号或密码错误!"));
- }
- rootElem.AppendChild(func("isSuccess",isSuccess));
- rootElem.AppendChild(data);
- document.AppendChild(rootElem);
- Console.WriteLine();
- return document.OuterXml;
- }
用户信息我就不从数据库里面取了,默认正确的就是test、123456;
我们可以在本地测试下这个服务,保证服务器本身没有问题。
输入错误的用户名和密码如下返回提示信息:
输入test、123456,返回我们期望的结果,注意是xml格式
好了,我们回到iphone这边,开发环境是Mac10.6.6 + Xcode4,新建一个应用程序,程序界面如下,
我们在登录界面初始化时给视图设置一个背景,虽然是demo,但也不能太丑吧:
- - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
- {
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- UIImage *bgImage = [UIImage imageNamed:@"background.png"];
- UIImageView *bgView = [[UIImageView alloc ]initWithImage:bgImage];
- [self.view insertSubview:bgView atIndex:0];
- [bgView release];
- return self;
- }
接下就是登录按钮的事件了,声明webservice的请求主体
- NSString *soapMessage = [NSString stringWithFormat:
- @"< ?xml version=\"1.0\" encoding=\"utf-8\"?> "
- "< soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
- xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
- "< soap:Body> "
- "< CheckLoginUserInfo xmlns=\"http://tempuri.org/\">"
- "< userName>
小结:关于用Xcode4实现基于WebService用户登录iPhone程序的内容介绍完了,希望本文对你有所帮助!