`
小te
  • 浏览: 2514 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

分享:自己开发的ITeye手机客户端(附源码)

阅读更多
看到论坛里有童鞋在问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
  • imag-iteye.zip (9.5 MB)
  • 描述: ITeye手机客户端
  • 下载次数: 361
  • 描述: 资讯
  • 大小: 54.7 KB
  • 描述: 资讯详情
  • 大小: 44.8 KB
  • 描述: 论坛
  • 大小: 47.1 KB
  • 描述: 帖子
  • 大小: 53.6 KB
  • 描述: 设置
  • 大小: 23.7 KB
分享到:
评论
1 楼 hs1022 2013-10-18  
源代码贴出来啊

相关推荐

    我写的iteye android客户端

    总之,“iteye android客户端”是一个集成了多种Android开发技术的实例,从源码解析中,开发者可以学习到关于UI设计、网络通信、数据存储、用户认证、模块化开发等多个领域的知识。对于那些想要提升Android开发技能...

    WPS客户端开发实例

    【标题】"WPS客户端开发实例"涉及到的是在IT行业中,使用WPS Office进行客户端应用程序的开发实践。WPS Office是一套集成了文字处理、电子表格、演示文稿等多种功能的办公软件,它提供了丰富的API和SDK供开发者进行...

    iteye.com 自动留言交友推广的小工具

    【自动留言交友推广小工具详解】 本工具是针对iteye.com平台设计的一款...通过深入学习和理解源码,我们可以从中学习到网络请求、网页解析、模拟登录等多方面的编程技巧,对于提升个人的IT技能和开发能力大有裨益。

    基于easyUI核心的富客户端实战开发视频教程

    在描述中提到了一个博客链接:"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或...

    android多微博客户端Cuckoo

    1. “源码”:表明这个项目提供了源代码,开发者可以研究、学习或者在现有基础上进行二次开发。 2. “工具”:暗示Cuckoo可能是一个开发工具或者辅助工具,用于帮助开发者更方便地处理微博相关的API调用、数据管理等...

    struts2 源码分析

    Struts2 源码分析 Struts2 是一个基于MVC 模式的Web 应用程序框架,它...Struts2 的源码分析可以帮助我们更好地理解框架的内部机制和工作流程,掌握 Struts2 的源码可以让我们更好地使用这个框架来开发 Web 应用程序。

    自定义客户端登录CAS服务器-iframe实现

    在描述中提到的博文链接指向了iteye博客上的一篇文章,虽然具体内容没有给出,但通常这样的文章会详细讲解如何配置CAS服务器、客户端应用以及如何利用iframe进行通信。通常流程包括以下步骤: 1. **CAS服务器部署**...

    北京ArcGis Server开发培训例子(整理)

    7. 源码解析:通过实际的代码示例,学习如何编写和调试GIS服务的客户端和服务器端代码。 8. 实战案例:通过博客链接提供的案例,学习如何解决实际问题,提升开发能力。 通过这个培训,参与者可以全面了解ArcGIS ...

    aaaaaaaaaaaaa

    6. **开源工具**:既然涉及到源码,博主可能推荐了一些开源工具,比如代码编辑器、IDE、版本控制客户端,或者性能分析工具,并解释了它们为何在开发过程中不可或缺。 7. **最佳实践**:博主可能分享了在团队协作中...

    socket聊天室之服务器搭建

    每个客户端连接都会创建一个新的线程或进程来处理,这样可以保持服务器的响应性,不会因为处理某个客户端而阻塞其他客户端。 4. **消息管理**:在聊天室场景下,服务器需要维护一个消息队列或缓冲区,用来存储和...

    ice客户端和服务端

    标题中的“ice客户端和服务端”指的是ZeroC的ICE(Internet Communications Engine)框架,这是一个高性能、跨平台的中间件,用于构建分布式系统。ICE提供了一种面向对象的接口,支持多种编程语言,包括C++、Java、...

    xfire客户端

    《Xfire客户端详解:源码解析与工具应用》 Xfire是一款曾经非常流行的多游戏即时通讯软件,它允许玩家在游戏过程中与好友聊天、组队、查看在线状态等功能。随着时代的变迁,虽然Xfire已逐渐淡出人们的视线,但其...

    IOS手机端应用程序调用WebService

    在iOS开发中,调用Web Service是常见的需求,主要用于实现应用程序与服务器之间的数据交互,比如登录验证、数据同步、获取动态信息等。本篇将详细探讨如何在iOS应用中调用WebService,主要涉及的知识点包括网络请求...

    使用Server转发的聊天程序 (短小精悍,无重复代码, 支持多客户端)

    【标题】"使用Server转发的聊天程序"是一个简洁高效的多客户端聊天系统,它实现了服务器作为消息中转站的功能,使得多个客户端可以互相通信,而无需直接连接到彼此。这一设计模式在分布式系统和网络编程中非常常见,...

    activeMQ 推送之mqtt客户端

    ActiveMQ是Apache组织开发的一个开源、跨平台的消息传递系统,它支持多种消息协议,其中包括轻量级的MQTT(Message Queuing Telemetry Transport)。MQTT主要用于设备到设备或者物联网(IoT)场景,具有低带宽、低功耗...

Global site tag (gtag.js) - Google Analytics