第三方登录+分享

1.开发者中心——sdk与文档-ushare分享-sdk下载-5.1.2

2.获得友盟appkey(在个人中心那里点击-创建新应用--配置完毕后在--下载SDK并添加代码里可以看到)

3.将文件夹中的'main/libs'和'main/res'文件夹复制到你的项目工程根目录下

4.如果配置QQ那么就要把qq对应的资源也复制到项目工程根目录下

5.在mainfest中其中key需要配置

   a.权限

<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.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

   b.本来的活动和keykey需要配置

<activity           
android:name="com.umeng.socialize.editorpage.ShareActivity"
android:theme="@style/Theme.UMDefault"
android:excludeFromRecents="true"/>
<meta-data
android:name="UMENG_APPKEY"
android:value="4eaee02c527015373b000003" >
</meta-data>

   c.需要登录哪一个就需要配置哪一个的activity例如QQ

<activity
  android: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="tencent100424468" />
</intent-filter>
</activity>
<activity          
    android:name="com.tencent.connect.common.AssistActivity"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

   

6. 各个平台的配置,建议放在全局Application或者程序入口在平台的入口

PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");
       //微信 appid appsecret
PlatformConfig.setSinaWeibo("3921700954","04b48b094faeb16683c32669824ebdad");
       //新浪微博 appkey appsecret
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba"); 
        // QQ和Qzone appid appkey     
PlatformConfig.setAlipay("2015111700822536");
        //支付宝 appid
PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
        //易信 appkey      
PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
        //Twitter appid appkey
PlatformConfig.setPinterest("1439206");
        //Pinterest appid 
PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
        //来往 appid appkey


7.在java代码中设置全局变量

UMShareAPI  mShareAPI = UMShareAPI.get(this);
private UMAuthListener umAuthListener = new UMAuthListener() {
        @Override
        public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
            Toast.makeText( getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onError(SHARE_MEDIA platform, int action, Throwable t) {
            Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onCancel(SHARE_MEDIA platform, int action) {
            Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();
        }
    };


8.在点击事件中触发的事件就是

SHARE_MEDIA platform = SHARE_MEDIA.QQ; 

mShareAPI.doOauthVerify(this, platform, umAuthListener)


9.重写方法

     @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        mShareAPI.onActivityResult(requestCode, resultCode, data);
    } 

10.获取信息也可以用接口获得,但是需要重写接口

mShareAPI.getPlatformInfo(UserinfoActivity.this, platform, umAuthListener1); 
                      String screen_name = data.get("screen_name");
            String profile_image_url = data.get("profile_image_url");


11.如果要分享,那么需要变量

final SHARE_MEDIA[] displaylist = new SHARE_MEDIA[]
                        {
                            SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.SINA,
                            SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE,SHARE_MEDIA.DOUBAN
                        };

分享的方是

<p>//图片(url)</p><pre lang="java"><code class="hljs java">UMImage image = <span class="hljs-keyword"><span class="hljs-keyword">new</span></span> UMImage(ShareActivity.<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>, <span class="hljs-string"><span class="hljs-string">"http://www.umeng.com/images/pic/social/integrated_3.png"</span></span>);
</code>

 

<p>//图片(本地资源引用)</p><pre lang="java"><code class="hljs java">UMImage image = <span class="hljs-keyword"><span class="hljs-keyword">new</span></span> UMImage(ShareActivity.<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>,
                BitmapFactory.decodeResource(getResources(), R.drawable.image));
</code>
 
// 分享的方法
new ShareAction(this).setDisplayList( displaylist )
                        .withText( "呵呵" )
                        .withTitle("title")
                        .withTargetUrl("http://www.baidu.com")
                        .withMedia( image )
                        .setListenerList(umShareListener)
                        .open();
// 里边的接口
<span class="hljs-keyword"><span class="hljs-keyword">new</span></span> UMShareListener() {
        <span class="hljs-annotation"><span class="hljs-annotation">@Override</span></span>
        <span class="hljs-function"><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">public</span></span></span><span class="hljs-function"> </span><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">void</span></span></span><span class="hljs-function"> </span><span class="hljs-title"><span class="hljs-function"><span class="hljs-title">onResult</span></span></span><span class="hljs-params"><span class="hljs-function"><span class="hljs-params">(SHARE_MEDIA platform)</span></span></span><span class="hljs-function"> </span></span>{
            Toast.makeText(ShareActivity.<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>,platform + <span class="hljs-string"><span class="hljs-string">" 分享成功啦"</span></span>, Toast.LENGTH_SHORT).show();
        }

        <span class="hljs-annotation"><span class="hljs-annotation">@Override</span></span>
        <span class="hljs-function"><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">public</span></span></span><span class="hljs-function"> </span><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">void</span></span></span><span class="hljs-function"> </span><span class="hljs-title"><span class="hljs-function"><span class="hljs-title">onError</span></span></span><span class="hljs-params"><span class="hljs-function"><span class="hljs-params">(SHARE_MEDIA platform, Throwable t)</span></span></span><span class="hljs-function"> </span></span>{
            Toast.makeText(ShareActivity.<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>,platform + <span class="hljs-string"><span class="hljs-string">" 分享失败啦"</span></span>, Toast.LENGTH_SHORT).show();
        }

        <span class="hljs-annotation"><span class="hljs-annotation">@Override</span></span>
        <span class="hljs-function"><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">public</span></span></span><span class="hljs-function"> </span><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">void</span></span></span><span class="hljs-function"> </span><span class="hljs-title"><span class="hljs-function"><span class="hljs-title">onCancel</span></span></span><span class="hljs-params"><span class="hljs-function"><span class="hljs-params">(SHARE_MEDIA platform)</span></span></span><span class="hljs-function"> </span></span>{
            Toast.makeText(ShareActivity.<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>,platform + <span class="hljs-string"><span class="hljs-string">" 分享取消了"</span></span>, Toast.LENGTH_SHORT).show();
        }
    };






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值