iOS开发- ShareSDK分享和第三方登录

一、前面部分引用官方文档,按步骤添加ShareSDK到自己的项目中

1. 获取ShareSDK的AppKey

         申请ShareSDK的appkey的流程

2. 下载SDK

下载页如图所示:
下载·
点击下载之后如下图所以,点击下载SDK的下载页,展开平台可以选择其他的第三方平台;demo也是这里下载;
下载2
下载完之后的解压目录如图所示:
下载3

3. 快速集成

ShareSDK深受大家喜爱,看下亲爱的用户做的详细说明:Studio集成

第一步:使快速工具进行集成(查看视频教程)

进入ShareSDK解压目录,打开“Share SDK for Android”目录,可以找到“QuickIntegrater.jar”,这个就是快速集成ShareSDK的工具

Windows下

首先确定您已经安装了JDK,并且正确配置了JAVA_HOME和PATH系统变量,此时您可以双击QuickIntegrater启动程序

ssdk_qig_qi_win

Linux/Mac OS下

同样需要先确保已经正确配置了JDK,之后启动终端,cd进入“Share SDK for Android”目录,输入: Java -jar QuickIntegrater.jar 可启动QuickIntegrater

ssdk_qig_qi_lin

正确输入项目的名称和包名,勾选需要的集成的平台,然后点击“确定”。
QuickIntegrater会自行产生一个文件夹,复制此文件夹中所有文件到您的项目中覆盖即可。

第二步:配置AndroidManifest.xml(查看视频教程)

下面清单文件的配置是全部的,没有的平台就是不需要配置

1、添加权限

2、添加activity信息

注意: tencent后面的appid要保持和您配置的QQ的appid一致)

3、如果您集成了微信,易信,新浪微博支付宝还需要添加下面回调的activity处理;

4、替换mob后台申请的Appkey与各个平台申请的key

07

第三步:添加分享代码(查看视频教程)

在您的代码中调用此方法,即可打开一键分享功能进行分享

运行效果如下:

07    07

编译并运行后,弹出类似上图的分享列表选择页面,点击后弹出分享窗口,点击发表后就成功发送到社交平台的话说明你已经基本集成成功了。

至此,分享功能就可以使用了。下面着重介绍下如何添加第三方登录

二、第三方登录实现

在步骤一完成后进行如下操作

[java] view plain copy
  1. //1.威信的  
  2.     //微信登录  
  3.         //测试时,需要打包签名;sample测试时,用项目里面的demokey.keystore  
  4.         //打包签名apk,然后才能产生微信的登录  
  5.         //Platform wechat = ShareSDK.getPlatform(Wechat.NAME);  
  6.         //authorize(wechat);  
  7.        
  8.      //2.新浪微博  
  9.     //新浪微博  
  10.         Platform sina = ShareSDK.getPlatform(SinaWeibo.NAME);  
  11.         authorize(sina);  


[java] view plain copy
  1. //执行授权,获取用户信息  
  2.         //文档:http://wiki.mob.com/Android_%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E8%B5%84%E6%96%99  
  3.         private void authorize(Platform plat) {  
  4.             if (plat == null) {  
  5.                 //popupOthers();  
  6.                 return;  
  7.             }  
  8.               
  9.             plat.setPlatformActionListener(this);  
  10.             //关闭SSO授权  
  11.             plat.SSOSetting(true);  
  12.             plat.showUser(null);  
  13.         }  

[java] view plain copy
  1. @Override  
  2.     public void onCancel(Platform platform, int action) {  
  3.         // TODO Auto-generated method stub  
  4.         if (action == Platform.ACTION_USER_INFOR) {  
  5.             handler.sendEmptyMessage(MSG_AUTH_CANCEL);  
  6.         }  
  7.     }  
  8.   
  9.     @Override  
  10.     public void onComplete(Platform platform, int action,  
  11.             HashMap<String, Object> res) {  
  12.         // TODO Auto-generated method stub  
  13.         if (action == Platform.ACTION_USER_INFOR) {  
  14.             Message msg = new Message();  
  15.             msg.what = MSG_AUTH_COMPLETE;  
  16.             msg.obj = new Object[] {platform.getName(), res};  
  17.             handler.sendMessage(msg);  
  18.         }  
  19.     }  
  20.   
  21.     @Override  
  22.     public void onError(Platform arg0, int action, Throwable t) {  
  23.         // TODO Auto-generated method stub  
  24.         if (action == Platform.ACTION_USER_INFOR) {  
  25.             handler.sendEmptyMessage(MSG_AUTH_ERROR);  
  26.         }  
  27.         t.printStackTrace();  
  28.     }  

在Oncreat中初始化一个handler :handler = new Handler(this);

实现方法:

[java] view plain copy
  1. @SuppressWarnings("unchecked")  
  2.         public boolean handleMessage(Message msg) {  
  3.             switch(msg.what) {  
  4.                 case MSG_AUTH_CANCEL: {  
  5.                     //取消授权  
  6.                     Toast.makeText(NewsDetailActivity.this, R.string.auth_cancel, Toast.LENGTH_SHORT).show();  
  7.                 } break;  
  8.                 case MSG_AUTH_ERROR: {  
  9.                     //授权失败  
  10.                     Toast.makeText(NewsDetailActivity.this, R.string.auth_error, Toast.LENGTH_SHORT).show();  
  11.                 } break;  
  12.                 case MSG_AUTH_COMPLETE: {  
  13.                     //授权成功  
  14.                     Toast.makeText(NewsDetailActivity.this, R.string.auth_complete, Toast.LENGTH_LONG).show();  
  15.                       
  16.                     Object[] objs = (Object[]) msg.obj;  
  17.                     String platform = (String) objs[0];  
  18.                     HashMap<String, Object> res = (HashMap<String, Object>) objs[1];  
  19. //                  if (signupListener != null && signupListener.onSignin(platform, res)) {  
  20. //                      SignupPage signupPage = new SignupPage();  
  21. //                      signupPage.setOnLoginListener(signupListener);  
  22. //                      signupPage.setPlatform(platform);  
  23. //                      signupPage.show(activity, null);  
  24. //                  }  
  25.                     doLogined(platform);  
  26.                 } break;  
  27.                 case MSG_SMSSDK_CALLBACK:   
  28.                 //{  
  29. //                  if (msg.arg2 == SMSSDK.RESULT_ERROR) {  
  30. //                      Toast.makeText(activity, "操作失败", Toast.LENGTH_SHORT).show();  
  31. //                  } else {  
  32. //                      switch (msg.arg1) {  
  33. //                          case SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE: {  
  34. //                              if(msgLoginDlg != null && msgLoginDlg.isShowing()){  
  35. //                                  msgLoginDlg.dismiss();  
  36. //                              }  
  37. //                              Toast.makeText(activity, "提交验证码成功", Toast.LENGTH_SHORT).show();  
  38. //                              Message m = new Message();  
  39. //                              m.what = MSG_AUTH_COMPLETE;  
  40. //                              m.obj = new Object[] {"SMSSDK", (HashMap<String, Object>) msg.obj};  
  41. //                              handler.sendMessage(m);  
  42. //                          } break;  
  43. //                          case SMSSDK.EVENT_GET_VERIFICATION_CODE:{  
  44. //                              Toast.makeText(activity, "验证码已经发送", Toast.LENGTH_SHORT).show();  
  45. //                          } break;  
  46. //                      }  
  47. //                  }  
  48.                 //}   
  49.                 break;  
  50.             }  
  51.             return false;  
  52.         }  

[java] view plain copy
  1. private void doLogined(String platform) {  
  2.             // TODO Auto-generated method stub  
  3.             mPlatform=ShareSDK.getPlatform(platform);  
  4.             String gender = "";  
  5.             if(platform != null){  
  6.                 gender = mPlatform.getDb().getUserGender();  
  7.                 if(gender.equals("m")){  
  8.                 //  userInfo.setUserGender(UserInfo.Gender.BOY);  
  9.                     gender = "男";  
  10.                 }else{  
  11.                     //userInfo.setUserGender(UserInfo.Gender.GIRL);  
  12.                     gender = "女";  
  13.                 }  
  14.                   
  15. //              userInfo.setUserIcon(platform.getDb().getUserIcon());  
  16. //              userInfo.setUserName(platform.getDb().getUserName());  
  17. //              userInfo.setUserNote(platform.getDb().getUserId());  
  18.                 Toast.makeText(getApplicationContext(), gender+"/"+mPlatform.getDb().getUserName()+"/"+mPlatform.getDb().getUserId(), 4000).show();  
  19.             }  
  20.               
  21. //          tvUserName.setText(userInfo.getUserName());  
  22. //          tvUserGender.setText(gender);  
  23. //          tvUserNote.setText("USER ID : " + userInfo.getUserNote());  
  24.         }  

至此,即可获得用户信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值