Android快速SDK(23)第三方授权登录库ThirdLogin【肌肉记忆,分钟接入】

本文主要是介绍Android快速SDK(23)第三方授权登录库ThirdLogin【肌肉记忆,分钟接入】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码:http://download.csdn.net/detail/huangbin95487710/9260831

依赖包模式

完整运行还需要用到以下依赖包

  • Android快速SDK(2)View库QuickView


  • 淘宝授权登录SDK
基于各授权登录SDK再次封装

  1. 授权登录支持
    • QQ登录
    • 微信登录
    • 淘宝登录
    • 新浪微博登录
  2. 新特性配置支持
    • 配置或设置各种授权登录
    • 配置各登录需要的KEY
    • 属性
    •   <declare-styleable name="ThirdLogin"><!-- QQ APPID --><attr name="third_qq_appid" format="string" /><!-- QQ SCOPE --><attr name="third_qq_scope" format="string" /><!-- 微信  APPID --><attr name="third_weixin_appid" format="string" /><!-- 微信 SECRET --><attr name="third_weixin_secret" format="string" /><!-- 微信 SCOPE --><attr name="third_weixin_scope" format="string" /><!-- 微博  APPID --><attr name="third_sina_appid" format="string" /><!-- 微博 URL --><attr name="third_sina_url" format="string" /><!-- 微博 SCOPE --><attr name="third_sina_scope" format="string" /><!-- QQ 显示 --><attr name="qq_show" format="boolean" /><!-- 微信 显示 --><attr name="weixin_show" format="boolean" /><!-- 微博 显示 --><attr name="sina_show" format="boolean" /><!-- 淘宝 显示 --><attr name="alipay_show" format="boolean" /><!-- 获取用户资料 --><attr name="is_getuseinfo" format="boolean" /><!-- 返回按键 --><attr name="keycode_back" format="boolean" /></declare-styleable>

    • 默认样式
    •     <!-- 自定义登录样式 --><style name="DivThirdLogin"><item name="third_qq_appid">@string/thirdlogin_qq_appid</item><item name="third_qq_scope">@string/thirdlogin_qq_scope</item><item name="third_weixin_appid">@string/thirdlogin_weixin_appid</item><item name="third_weixin_secret">@string/thirdlogin_weixin_secret</item><item name="third_weixin_scope">@string/thirdlogin_weixin_scope</item><item name="third_sina_appid">@string/thirdlogin_sina_appid</item><item name="third_sina_url">@string/thirdlogin_sina_url</item><item name="third_sina_scope">@string/thirdlogin_sina_scope</item><item name="qq_show">true</item><item name="weixin_show">true</item><item name="sina_show">true</item><item name="alipay_show">true</item><item name="is_getuseinfo">true</item><item name="keycode_back">true</item></style>

  3. AndroidManifest.xml添加配置
    •     <applicationandroid:allowBackup="true"android:theme="@android:style/Theme.NoTitleBar" ><!-- ###################第三方登录################### --><activityandroid:name="com.tencent.connect.common.AssistActivity"android:configChanges="orientation|keyboardHidden"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" /><activityandroid:name="com.tencent.tauth.AuthActivity"android:launchMode="singleTask"android:noHistory="true" ><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="tencent801291865" /><!-- 100380359 100381104 801291865 --></intent-filter></activity><!-- ###################第三方登录################### --><!-- ###################淘宝登录################### --><activityandroid:name="app.general.lib.TaoBaoActivity"android:configChanges="orientation|keyboardHidden|navigation"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" /><activity android:name="com.alibaba.sdk.android.webview.BaseWebViewActivity" /><activity android:name="com.alibaba.sdk.android.login.ui.LoginWebViewActivity" /><activityandroid:name="com.alibaba.sdk.android.login.ui.QrLoginActivity"android:theme="@style/tae_sdk_login_qr_activity_style" /><!-- ###################淘宝登录################### --></application><!-- ###################第三方登录权限################### --><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- ###################第三方登录权限################### --><!-- ###################淘宝登录权限################### --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.READ_SETTINGS" /><uses-permission android:name="android.permission.WRITE_SETTINGS" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.CAMERA" /><!-- ###################淘宝登录权限################### -->

  4. 添加混淆,详见依赖包proguard.cfg
  5. 复制以下的XML文件到目标项目,在保持ID不变下,可任意更改界面
    • thirdlogin.xml
    • thirdlogin_frame.xml
  6. 代码示例
    • 布局
    • <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/ll"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:padding="15dip" ><ScrollViewandroid:id="@+id/scrollView1"android:layout_width="match_parent"android:layout_height="wrap_content" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><Buttonandroid:id="@+id/button1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginBottom="15dip"android:text="第三方登录(默认)" /><Buttonandroid:id="@+id/button2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginBottom="15dip"android:text="自定义样式" /><Buttonandroid:id="@+id/button3"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginBottom="15dip"android:text="自定义布局" /><Buttonandroid:id="@+id/button4"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginBottom="15dip"android:text="对话框样式" /><Buttonandroid:id="@+id/button5"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginBottom="15dip"android:text="注销账号" /><includeandroid:layout_width="fill_parent"android:layout_height="wrap_content"layout="@layout/thirdlogin" ></include></LinearLayout></ScrollView></LinearLayout>

    • 自定义样式
    • <?xml version="1.0" encoding="utf-8"?>
      <resources><!-- 重写样式 --><style name="MyDivThirdLogin1" parent="@style/DivThirdLogin"><item name="weixin_show">false</item></style></resources>

    • 代码
    • package cn.whonow.whonow.third;import General.System.MyLog;
      import General.ThirdLogin.Third;
      import General.ThirdLogin.ThirdBase;
      import General.ThirdLogin.ThirdListener;
      import General.ThirdLogin.Sina.Data.AccessTokenKeeper;
      import android.app.Activity;
      import android.content.Intent;
      import android.os.Bundle;
      import android.view.View;
      import android.view.View.OnClickListener;
      import android.widget.Button;
      import cn.whonow.whonow.R;/*** 第三方登录测试* @必须实现ThirdListener接口* @author HuangYi QQ:95487710*/
      public class ThirdLoginActivity extends Activity implements ThirdListener {private Third mThird;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test_thirdlogin);Button button1 = (Button) findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubThird mThird = new Third(ThirdLoginActivity.this, R.id.ll,ThirdLoginActivity.this);mThird.popupLogin();}});Button button2 = (Button) findViewById(R.id.button2);button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubThird mThird = new Third(ThirdLoginActivity.this, R.id.ll,R.style.MyDivThirdLogin1, ThirdLoginActivity.this);mThird.popupLogin();}});Button button3 = (Button) findViewById(R.id.button3);button3.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubThird mThird = new Third(ThirdLoginActivity.this, R.id.ll,R.layout.test_thirdlogin_frame, R.style.DivThirdLogin,ThirdLoginActivity.this);mThird.popupLogin();}});Button button4 = (Button) findViewById(R.id.button4);button4.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubThird mThird = new Third(ThirdLoginActivity.this, -1,R.style.MyDivThirdLogin1, ThirdLoginActivity.this);mThird.popupLogin();}});Button button5 = (Button) findViewById(R.id.button5);button5.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 注销账号Third.doLogout(ThirdLoginActivity.this);AccessTokenKeeper.clear(ThirdLoginActivity.this);mThird.onLoginSina();}});mThird = new Third(this);mThird.setThirdListener(this);mThird.initLogin();}@Overridepublic void onSucess(ThirdBase mThirdBase) {// TODO Auto-generated method stubMyLog.show(this, "登录方式:" + mThirdBase.mThirdType + "\n\r"+ mThirdBase.mNickName);}@Overridepublic void onError(String mError) {// TODO Auto-generated method stubMyLog.show(this, "错误信息:" + mError);}@Overridepublic void onCancel() {// TODO Auto-generated method stub}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (mThird != null) {mThird.onActivityResult(requestCode, resultCode, data);}}@Overridepublic void onDestroy() {super.onDestroy();if (mThird != null) {mThird.onDestroy();}}@Overridepublic void onResume() {super.onResume();if (mThird != null) {mThird.onResume();}}@Overridepublic void onPause() {super.onPause();if (mThird != null) {mThird.onPause();}}}


  7. 效果图


这篇关于Android快速SDK(23)第三方授权登录库ThirdLogin【肌肉记忆,分钟接入】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/196583

相关文章

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

C++快速排序超详细讲解

《C++快速排序超详细讲解》快速排序是一种高效的排序算法,通过分治法将数组划分为两部分,递归排序,直到整个数组有序,通过代码解析和示例,详细解释了快速排序的工作原理和实现过程,需要的朋友可以参考下... 目录一、快速排序原理二、快速排序标准代码三、代码解析四、使用while循环的快速排序1.代码代码1.由快