看到论坛里有童鞋在问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
这里附上登录页面的源码
<?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
- 描述: 登录页面
- 大小: 15.3 KB
- 描述: 资讯
- 大小: 54.7 KB
- 描述: 资讯详情
- 大小: 44.8 KB
- 描述: 论坛
- 大小: 47.1 KB
- 描述: 帖子
- 大小: 53.6 KB
- 描述: 设置
- 大小: 23.7 KB
分享到:
相关推荐
总之,“iteye android客户端”是一个集成了多种Android开发技术的实例,从源码解析中,开发者可以学习到关于UI设计、网络通信、数据存储、用户认证、模块化开发等多个领域的知识。对于那些想要提升Android开发技能...
【标题】"WPS客户端开发实例"涉及到的是在IT行业中,使用WPS Office进行客户端应用程序的开发实践。WPS Office是一套集成了文字处理、电子表格、演示文稿等多种功能的办公软件,它提供了丰富的API和SDK供开发者进行...
【自动留言交友推广小工具详解】 本工具是针对iteye.com平台设计的一款...通过深入学习和理解源码,我们可以从中学习到网络请求、网页解析、模拟登录等多方面的编程技巧,对于提升个人的IT技能和开发能力大有裨益。
在描述中提到了一个博客链接:"https://2199289905.iteye.com/blog/1985771",虽然具体的内容没有提供,但可以推测该博客可能包含了教程的详细内容、示例代码或者开发过程中的技巧和经验分享。通常,这样的资源会...
“源码”标签表明这个腾讯微博客户端可能是开源的,这意味着它的原始代码对公众开放,开发者或技术爱好者可以查看、学习甚至修改代码来适应自己的需求。开源软件往往促进了社区协作和创新,对于学习编程和软件开发的...
文章来源于博客作者cxlh在iteye上的分享,链接为:https://cxlh.iteye.com/blog/684138。 首先,我们需要理解在线视频录制的基本流程。这个过程通常包括视频采集、编码、传输和存储四个步骤。视频采集是指通过...
ASP是一种由微软公司开发的服务器端脚本环境,用于生成动态网页。它允许开发者使用诸如VBScript或JScript等脚本语言,在服务器端编写代码,从而处理用户请求,生成HTML页面并返回给客户端浏览器。在网络书店系统中,...
【标题】"下载系统源码"所涉及的知识点主要集中在ASP(Active Server Pages)编程上,这是一种由微软公司开发的服务器端脚本环境,用于创建动态网页或Web应用程序。ASP技术允许开发者通过HTML代码嵌入VBScript或...
1. “源码”:表明这个项目提供了源代码,开发者可以研究、学习或者在现有基础上进行二次开发。 2. “工具”:暗示Cuckoo可能是一个开发工具或者辅助工具,用于帮助开发者更方便地处理微博相关的API调用、数据管理等...
Struts2 源码分析 Struts2 是一个基于MVC 模式的Web 应用程序框架,它...Struts2 的源码分析可以帮助我们更好地理解框架的内部机制和工作流程,掌握 Struts2 的源码可以让我们更好地使用这个框架来开发 Web 应用程序。
在描述中提到的博文链接指向了iteye博客上的一篇文章,虽然具体内容没有给出,但通常这样的文章会详细讲解如何配置CAS服务器、客户端应用以及如何利用iframe进行通信。通常流程包括以下步骤: 1. **CAS服务器部署**...
7. 源码解析:通过实际的代码示例,学习如何编写和调试GIS服务的客户端和服务器端代码。 8. 实战案例:通过博客链接提供的案例,学习如何解决实际问题,提升开发能力。 通过这个培训,参与者可以全面了解ArcGIS ...
6. **开源工具**:既然涉及到源码,博主可能推荐了一些开源工具,比如代码编辑器、IDE、版本控制客户端,或者性能分析工具,并解释了它们为何在开发过程中不可或缺。 7. **最佳实践**:博主可能分享了在团队协作中...
每个客户端连接都会创建一个新的线程或进程来处理,这样可以保持服务器的响应性,不会因为处理某个客户端而阻塞其他客户端。 4. **消息管理**:在聊天室场景下,服务器需要维护一个消息队列或缓冲区,用来存储和...
标题中的“ice客户端和服务端”指的是ZeroC的ICE(Internet Communications Engine)框架,这是一个高性能、跨平台的中间件,用于构建分布式系统。ICE提供了一种面向对象的接口,支持多种编程语言,包括C++、Java、...
《Xfire客户端详解:源码解析与工具应用》 Xfire是一款曾经非常流行的多游戏即时通讯软件,它允许玩家在游戏过程中与好友聊天、组队、查看在线状态等功能。随着时代的变迁,虽然Xfire已逐渐淡出人们的视线,但其...
在iOS开发中,调用Web Service是常见的需求,主要用于实现应用程序与服务器之间的数据交互,比如登录验证、数据同步、获取动态信息等。本篇将详细探讨如何在iOS应用中调用WebService,主要涉及的知识点包括网络请求...
【标题】"使用Server转发的聊天程序"是一个简洁高效的多客户端聊天系统,它实现了服务器作为消息中转站的功能,使得多个客户端可以互相通信,而无需直接连接到彼此。这一设计模式在分布式系统和网络编程中非常常见,...
ActiveMQ是Apache组织开发的一个开源、跨平台的消息传递系统,它支持多种消息协议,其中包括轻量级的MQTT(Message Queuing Telemetry Transport)。MQTT主要用于设备到设备或者物联网(IoT)场景,具有低带宽、低功耗...