分享:自己开发的ITeye手机客户端(附源码)
程序员文章站
2024-01-18 17:52:58
...
看到论坛里有童鞋在问ITeye官方怎么没有手机版的客户端,于是我花时间自己搞了一个,这样看帖就方便了。
客户端集成了ITeye的资讯,论坛,博客的相关内容,支持Android和iPhone手机。
客户端我放到百度网盘上了,点此下载:http://pan.baidu.com/s/1Jhm3
客户端我是在iMAG移动应用开发平台开发的,基于iMAG移动中间件技术。
用中间件开发的好处是开发一次Android和iPhone就都搞定了,而且开发比较简单,会点儿HTML和Javascript就行了。
iMAG的原理是把xml文件翻译成原生代码来执行,因此性能和原生应用差不多,同时因为封装得比较好, 开发很简单,比PhoneGap之类的要好得多。
关于如何用iMAG中间件来开发移动应用,有兴趣的同学可以去iMAG的官网看看:http://www.imagapp.com
这里附上登录页面的源码
完整的客户端源码我在iMAG官网论坛里有分享:
http://bbs.imagapp.com
http://bbs.imagapp.com/forum.php?mod=viewthread&tid=65
http://www.iteye.com/topic/1132280
客户端集成了ITeye的资讯,论坛,博客的相关内容,支持Android和iPhone手机。
客户端我放到百度网盘上了,点此下载:http://pan.baidu.com/s/1Jhm3
客户端我是在iMAG移动应用开发平台开发的,基于iMAG移动中间件技术。
用中间件开发的好处是开发一次Android和iPhone就都搞定了,而且开发比较简单,会点儿HTML和Javascript就行了。
iMAG的原理是把xml文件翻译成原生代码来执行,因此性能和原生应用差不多,同时因为封装得比较好, 开发很简单,比PhoneGap之类的要好得多。
关于如何用iMAG中间件来开发移动应用,有兴趣的同学可以去iMAG的官网看看:http://www.imagapp.com
这里附上登录页面的源码
<?xml version="1.0" encoding="utf-8"?> <imag> <script> <![CDATA[ var authenticity_token; function isOnline(html) { if (html && (html.indexOf('class="welcome">欢迎') != -1)) { return true; } else { return false; } } function login() { var dlg = $page.waiting('用户登录|正在登录系统...'); var username = $('username').value; var password = $('password').value; $http.post('http://xiaote.iteye.com/login', { name: username, password: password, authenticity_token: authenticity_token, remember_me: '1', button: '登 录' }, function(data) { dlg.close(); if (isOnline(data)) { hint('登录成功'); var storage = $phone.localStorage(); storage.setItem('login_online', '1'); storage.setItem('login_username', username); storage.setItem('login_password', password); storage.setItem('login_token', authenticity_token); var regex = /<a\s+id="notifications_count"\s+href="\S+">([^<]+)<\/a>[^收]+收件箱\(([0-9]+)\)/gm; var group = regex.exec(data); if (group != null) { storage.setItem('login_message_count', group[1]); storage.setItem('login_email_count', group[2]); } $page.close(); } else { hint('登录名称或密码错误,请重新登录'); var storage = $phone.localStorage(); storage.removeItem('login_online'); storage.removeItem('login_username'); storage.removeItem('login_password'); } }, function(error) { if (error == 'timeout') { hint('连接服务器超时,请重试'); } else if (error == '401') { alert('您所在的IP地址对ITeye网站访问过于频繁,请您稍后再试或到网站上填写验证码,谢谢!'); } }); } $page.onload = function() { var dlg = $page.waiting('请稍后|正在加载..'); $http.get('http://xiaote.iteye.com/login', function(data) { var regex = /<input\s+name="authenticity_token"\s+type="hidden"\s+value="(\S+)"\s*\/>/mg; var group = regex.exec(data); if (group != null) { dlg.close(); authenticity_token = group[1]; var storage = $phone.localStorage(); } else { $http.get('http://www.iteye.com/logout', function(data) { dlg.close(); var storage = $phone.localStorage(); storage.removeItem('login_online'); storage.removeItem('login_username'); storage.removeItem('login_password'); storage.removeItem('login_message_count'); storage.removeItem('login_email_count'); }); } }, function(error) { if (error == 'timeout') { hint('连接服务器超时,请重试'); } else if (error == '401') { alert('您所在的IP地址对ITeye网站访问过于频繁,请您稍后再试或到网站上填写验证码,谢谢!'); } }); } ]]> </script> <page> <title style="background:gradient(#6293BB);"> <center> <label>用户登录</label> </center> </title> <content style="background:white"> <form action="login.xml" onsubmit="login();return false"> <row style="padding:20"> <radios name=""> <item value="iteye" checked="checked">ITeye账号</item> <item value="csdn">csdn账号</item> </radios> </row> <list type="group" style="margin:10 20 20 20"> <item style="col-width:70,*"> <col> <row><icon src="username.png"/><label style="margin-left:10">账号</label></row> </col> <col> <row><input type="text" id="username" name="username" style="background:null" placeholder="用户名或邮箱" /></row> </col> </item> <item style="col-width:70,*"> <col> <row><icon src="password.png"/><label style="margin-left:10">密码</label></row> </col> <col> <row><input type="password" id="password" name="passowrd" style="background:null"/></row> </col> </item> </list> <input type="submit" style="background:loginbutton.png,loginbutton_pressed.png;margin:10 30;height:45" value="登录"/> <validation inputName="username"> <presence errorMessage="请输入账号"/> </validation> <validation inputName="password"> <presence errorMessage="请输入密码"/> </validation> </form> </content> </page> </imag>
完整的客户端源码我在iMAG官网论坛里有分享:
http://bbs.imagapp.com
http://bbs.imagapp.com/forum.php?mod=viewthread&tid=65
http://www.iteye.com/topic/1132280