`
lynnlysh
  • 浏览: 178916 次
  • 性别: Icon_minigender_2
  • 来自: 天津
社区版块
存档分类
最新评论

android平台下,淘宝客户端开发之——登陆

 
阅读更多
1.啰嗦的理论写在前面
在人们的印象中,各种社交网站的客户端都把登陆作为第一步,但对于淘宝客户端,我们没有必要这样做。这是由于,好多懒人们懒得登陆或注册,因此就不用你的客户端了,直接影响将近三分之一的网站流量啊(这是看官方论坛中有人统计的)。因此我们在不得不登陆的时候再设置登陆这步,而不是放在客户端的开始。
2.进行登陆的过程
淘宝的登陆为了安全起见,规定以内嵌wap页的形式网页登陆,因此登陆这步我们就没必要纠结于界面设计了,直接放一个WebView就OK了(url用Mars.jar包中的MtopLogin类的getLoginUrl()方法得到)。在页面中实现登陆、授权后,MtopLogin类可以getTopSession(),这个参数在后续的得打用户、进行买卖中将用到。
3.实现该过程的准备:
下载mars.alpha-v0.6(http://www.archermind.com/mtop
(1)新建android工程,在工程中导入mars.jar包(mars.alpha-v0.6\sdk\marr.jar)
(2)AndroidManifest.xml  中增加internet访问权和手机硬件访问权
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
(3)建res\layout\login.xml  将一个webview、一个按钮、一个textview拖到一个LinearLayout中。
login.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  	xmlns:android="http://schemas.android.com/apk/res/android"
  	android:layout_width="fill_parent"
  	android:layout_height="fill_parent"
  	android:orientation="vertical">
  	<WebView 
  		android:id="@+id/wv1" android:layout_width="match_parent" android:layout_height="187dp">
	</WebView>
  	<Button android:text="获得用户信息" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
  	<TextView android:text="TextView" android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="match_parent"></TextView>
</LinearLayout>

(4)主要java代码:
获取web的url方法:
        mWebView = (WebView) findViewById(R.id.webview);
        // get WebSetting object,设置支持Javascript的参数
        mWebView.getSettings().setJavaScriptEnabled(true);
        // 页面缩放设置
        mWebView.getSettings().setBuiltInZoomControls(true);
        // 使页面获得焦点
        mWebView.requestFocus();

        String mtopUrl = "http://api.m.taobao.com/rest/api2.do";
        String v = "";
        String appKey = "12311413";// 你的应用所申请的appkey和secret
        String secret = "48d7e406fadaf1b1f7abb32a95a71c33";
        ttid = "";
        v = "androidClient";
        mtopLogin = new MtopLogin(mtopUrl, v, imei, imsi, appKey, secret, ttid);
        try {
            try {
                mWebView.loadUrl(mtopLogin.getLoginUrl());
            } catch (ApiException e) {

                e.printStackTrace();
            }
        } catch (JSONException e) {
            mWebView.loadUrl("http://www.baidu.com");
        }

        /* response WebView event */
        mWebView.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

button的onclick事件:
@Override
        public void onClick(View v) {
            try {
                try {
                    mtopLogin.getUserSessionKey();
                } catch (ApiException e) {
                    e.printStackTrace();
                }
                mtopLogin.getTopsession();
            } catch (JSONException e1) {

                e1.printStackTrace();
            }

            OpenServiceClient.init("http://gw.api.taobao.com/router/rest",
                    appKey, secret, getApplicationContext(), "", imei, imsi);//必须有这步才能调用UserDomainApi的方法

            try {

                User user = UserDomainApi.getUser("nick", "",         mtopLogin.getTopsession());//通过session获得user信息具体见doc中的文档
                text.setText(user.getNick() + user.getCreated());
            } catch (ApiException e) {
                text.setText("获取失败!");
            }
        }

(5)注意事项,获取imei,imsi的参数在虚拟机与在真机中不同。
在真机测试中用:
TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
    String imei =  telephonyManager.getDeviceId();
    String imsi = telephonyManager.getSubscriberId();

来获取。
虚拟机中这么获取会报错的。
虚拟机中使用:
 String imei = "89014103211118510720";//瞎编就行~~~~(>_<)~~~~ 
 String imsi = "310260000000000";//瞎编就行O(∩_∩)O

(6)测试说明:
运行应用后,在webview中登陆并实现授权,然后点击按钮“获取用户信息”即可得到登陆的用户名,证明登陆成功。
其实在执行 mtopLogin.getUserSessionKey();后已经登陆成功获取到了其他操作所需的session,token等。
*****************************失恋分割线*************************
没能好好珍惜你是我对我们之间最大的遗憾
分享到:
评论

相关推荐

    安卓Android源码——淘宝客户端源码.zip

    【标题】"安卓Android源码——淘宝客户端源码.zip" 提供的是淘宝手机客户端的源代码,这为我们深入了解安卓应用开发提供了宝贵的资源。这个压缩包包含的不仅是代码本身,还可能有相关的图片资源和文档说明。 【描述...

    Android源码——淘宝客户端源码.zip

    《深入解析Android淘宝客户端源码》 Android淘宝客户端源码是一个宝贵的资源,它为我们揭示了大规模商业级应用的内部架构和实现细节。这份源码涵盖了众多Android开发中的关键知识点,对于提升开发者对Android系统...

    Android应用实战淘宝网手机客户端

    【压缩包子文件的文件名称列表】中的文件看似与淘宝客户端开发直接关联性不强,但它们可能提供了相关的辅助学习资源: 1. "北风网Android应用高端培训网络培训.html":这可能是一个在线教育平台提供的Android高级...

    招财三人行——淘宝项目客户端(Android).zip

    为了满足广大Android开发爱好者与从业者的学习需求,我们精心整理并上传了一份全面而...我们希望通过这份资源包,为广大Android开发爱好者与从业者提供一个更加便捷、高效的学习平台,共同推动Android开发领域的发展。

    淘宝客户端安全生产体系建设(csdn)————程序.pdf

    在这个体系中,淘宝客户端着重于规范化流程和平台的建设,以提升效率和用户体验。 在研发期,安全生产平台注重模块质量和开发便利性。平台提供的工具包括需求管理、代码分支管理、单元测试、代码审查和测试请求审批...

    简易淘宝手机版源码

    【标题】"简易淘宝手机版源码"涉及到的是一个基于Android平台的移动应用开发项目,旨在模仿淘宝客户端的功能。这个项目可能适用于初学者或者希望了解淘宝客户端基本架构的开发者,通过学习可以掌握Android应用开发的...

    android技术文档

    Android开发杂谈_split_2 .pdf 史上最全的android面试题库 .pdf 淘宝客户端for android .pdf 06_Android_GUI_System .pdf Android动画框架详解——第1部分 .pdf Android动画框架详解——第2部分 .pdf

    ArcMenu——Github上找到的一个超赞的Menu开源控件

    淘宝客户端作为知名的电商应用,也采用了这种控件,足以证明其在实际应用中的价值和效果。 该控件的主要特性包括: 1. **自定义化**:ArcMenu允许开发者自定义菜单项的数量、图标、文字以及显示样式,使其能适应...

    Client.zip

    本文将围绕"Client.zip"这个压缩包中的核心内容——客户端技术进行深入探讨,涵盖其基本概念、主要类型、常用技术和最新发展趋势。 一、客户端的基本概念 客户端(Client)是指在分布式计算环境中,用于向服务器...

    苹果核-天猫移动博客合集.pdf

    - **虚拟控件设计与实现:**介绍了VirtualView在Android平台下的核心组件——虚拟控件的设计思路与实现过程。 - **文件格式与模板编译:**阐述了VirtualView使用的文件格式及如何将模板编译成可执行代码。 #### ...

    淘宝放单源码Java-tester-resource:测试技术资源

    淘宝放单源码Java 测试资源整理 在 GitHub 上有各种系列的资源整理库,去帮助大家快速方便地查询该技术的相关资料。但测试方面的资料整理寥寥无几,或许也只是我没发现,于是某天晚上就突发奇想搞了这样一个资料整理...

    JAVA上百实例源码以及开源项目源代码

    此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...

Global site tag (gtag.js) - Google Analytics