1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 用sharesdk第三方等陆或分享到QQ空间 qq好友 微信 朋友圈 新浪微博 腾讯微博等

用sharesdk第三方等陆或分享到QQ空间 qq好友 微信 朋友圈 新浪微博 腾讯微博等

时间:2022-09-17 08:25:23

相关推荐

用sharesdk第三方等陆或分享到QQ空间 qq好友 微信 朋友圈 新浪微博 腾讯微博等

公司最近不景气,辞职后的日子刚开始还挺嗨皮,过两天闲的蛋都碎了,都四月份了,还是领到毕业证在找吧。。。。。。

不扯淡了,项目中经常有第三方等陆或者分享的功能,以下是我用sharesdk实现的步骤。。

1使用第三方前,导入MainLibs/libs中相应的包,res中的drawble中的图片必须导入到工程中,values中的String.xml中的条目选择自己用到的复制到工程中

2把assest文件下的ShareSdk.conf拷到assest文件下,里面放置都是各个平台申请的appid

3在清单中注册时加上demo中的权限,以及复制下面的代码到工程中

<activityandroid:name="cn.sharesdk.framework.ShareSDKUIShell"

android:configChanges="keyboardHidden|orientation"

android:screenOrientation="portrait"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:windowSoftInputMode="stateHidden|adjustResize">

</activity>

4各个平台的第三方登录及分享代码,在Shareandthirdlogin工程中的点击事件下均可找到(注意:在oncreate()方法中一定要初始化Sharesdk,添加代码:SharesdkInit(this))

5此时如果有正确的key,就可以登陆和分享了(应到各开发者平台申请自己应用的key)

代码贡献出来了。。

import java.util.HashMap;

import cn.sharesdk.framework.Platform;

import cn.sharesdk.framework.PlatformActionListener;

import cn.sharesdk.framework.ShareSDK;

import cn.sharesdk.sina.weibo.SinaWeibo;

import cn.sharesdk.tencent.qq.QQ;

import cn.sharesdk.tencent.qzone.QZone;

import cn.sharesdk.tencent.weibo.TencentWeibo;

import cn.sharesdk.wechat.friends.Wechat;

import cn.sharesdk.wechat.moments.WechatMoments;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.view.LayoutInflater;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

/**

* 使用sharesdk实现第三方登陆及分享

* @author duronggang

* @date -1-23 下午1:55:35

*/

public class MainActivity extends Activity {

private Button qqLoginBt; //qq登陆

private Button sinaLoginBt; //新浪微博登陆

private Button tencentLoginBt; //腾讯微博登陆

private Button qqandqqZoneShareBt; //QQ好友,空间分享

private Button sinaWbShareBt; //新浪微博分享

private Button tencentWbShareBt; //腾讯微博分享

private Button wxShareBt; //微信分享

private Button wxfriendsShareBt; //朋友圈分享

private Button attentionBt; //特别说明

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ShareSDK.initSDK(this); //初始化一定要有,否则会报空指针异常

init();

listener();

}

private void listener() {

// TODO Auto-generated method stub

qqLoginBt.setOnClickListener(l);

sinaLoginBt.setOnClickListener(l);

tencentLoginBt.setOnClickListener(l);

qqandqqZoneShareBt.setOnClickListener(l);

sinaWbShareBt.setOnClickListener(l);

tencentWbShareBt.setOnClickListener(l);

wxShareBt.setOnClickListener(l);

wxfriendsShareBt.setOnClickListener(l);

attentionBt.setOnClickListener(l);

}

public void init()

{

qqLoginBt = (Button) findViewById(R.id.bt_qqlogin);

sinaLoginBt = (Button) findViewById(R.id.bt_sinalogin);

tencentLoginBt = (Button) findViewById(R.id.bt_tencentlogin);

qqandqqZoneShareBt = (Button) findViewById(R.id.bt_qqandqzoneshare);

sinaWbShareBt = (Button) findViewById(R.id.bt_sinashare);

tencentWbShareBt = (Button) findViewById(R.id.bt_tencetwbshare);

wxShareBt = (Button) findViewById(R.id.bt_wxshare);

wxfriendsShareBt = (Button) findViewById(R.id.bt_wxfriendshare);

attentionBt = (Button) findViewById(R.id.bt_attention);

}

OnClickListener l = new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch(v.getId()){

case R.id.bt_qqlogin:

Platform platQQ = ShareSDK.getPlatform(MainActivity.this, QZone.NAME);

platQQ.setPlatformActionListener(qqlistener);

platQQ.showUser(null); //代表获取自己的授权信息

platQQ.removeAccount();

break;

case R.id.bt_sinalogin:

Platform platsina = ShareSDK.getPlatform(MainActivity.this, SinaWeibo.NAME);

platsina.setPlatformActionListener(sinalistener);

platsina.showUser(null); //代表获取自己的授权信息

platsina.removeAccount();

break;

case R.id.bt_tencentlogin:

Platform platten = ShareSDK.getPlatform(MainActivity.this, TencentWeibo.NAME);

platten.setPlatformActionListener(sinalistener);

platten.showUser(null); //代表获取自己的授权信息

platten.removeAccount();

break;

case R.id.bt_qqandqzoneshare:

QQ.ShareParams qqsp = new QQ.ShareParams();

qqsp.title = "title";

qqsp.text = "share";

qqsp.titleUrl = "";

// qqsp.shareType = Platform.SHARE_TEXT;

//qqsp.imagePath = "";

// sp.imagePath = “/mnt/sdcard/测试分享的图片.jpg”;

Platform qqs = ShareSDK.getPlatform(MainActivity.this, QQ.NAME);

qqs.setPlatformActionListener(sinalistener); // 设置分享事件回调

// 执行图文分享

qqs.share(qqsp);

break;

case R.id.bt_sinashare:

Platform.ShareParams sp = new SinaWeibo.ShareParams();

sp.text = "分享";

//sp.imagePath ="";

Platform weibo = ShareSDK.getPlatform(MainActivity.this, SinaWeibo.NAME);

weibo.setPlatformActionListener(sinalistener); // 设置分享事件回调

// 执行图文分享

weibo.share(sp);

break;

case R.id.bt_tencetwbshare:

Platform.ShareParams ssp = new TencentWeibo.ShareParams();

ssp.text = "分享";

//ssp.imagePath = "";

Platform tewb = ShareSDK.getPlatform(MainActivity.this, TencentWeibo.NAME);

tewb.setPlatformActionListener(sinalistener);

tewb.share(ssp);

tewb.removeAccount();

break;

case R.id.bt_wxshare:

Wechat.ShareParams wxsp = new Wechat.ShareParams();

//sp.title = ""; //分享的标题

wxsp.text = "分享"; //分享的内容

wxsp.shareType = Platform.SHARE_TEXT; //分享的类别

//sp.imagePath = “/mnt/sdcard/测试分享的图片.jpg”; //要分享的图片路径

Platform wechat = ShareSDK.getPlatform(MainActivity.this, Wechat.NAME);

wechat.setPlatformActionListener(sinalistener); // 设置分享事件回调

// 执行图文分享

wechat.share(wxsp);

break;

case R.id.bt_wxfriendshare:

WechatMoments.ShareParams ps = new WechatMoments.ShareParams();

ps.title = "title";

ps.text = "分享";

ps.shareType = Platform.SHARE_TEXT;

ps.imagePath = "";

// sp.imagePath = “/mnt/sdcard/测试分享的图片.jpg”;

Platform wechats = ShareSDK.getPlatform(MainActivity.this, WechatMoments.NAME);

System.out.println(wechats + "wwwwwwww");

wechats.setPlatformActionListener(sinalistener); // 设置分享事件回调

// wechat.removeAccount(); //用于清除登陆账户

// 执行图文分享

wechats.share(ps);

break;

case R.id.bt_attention:

AlertDialog.Builder zidingyi = new AlertDialog.Builder(MainActivity.this);

zidingyi.setTitle("说明");

View vv = LayoutInflater.from(MainActivity.this).inflate(R.layout.seekbar, null);

zidingyi.setView(vv);

zidingyi.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface arg0, int arg1) {

// TODO Auto-generated method stub

}

});

zidingyi.show();

break;

}

}

};

PlatformActionListener sinalistener = new PlatformActionListener() {

@Override

public void onError(Platform arg0, int arg1, Throwable arg2) {

// TODO Auto-generated method stub

System.out.println("授权失败..........");

Message msg = new Message();

msg.obj = arg2;

sharehand.sendMessage(msg);

System.out.println(arg2);

}

@Override

public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {

// TODO Auto-generated method stub

System.out.println("onComplete........");

/*使用腾讯微博登陆后获取的用户id和昵称

String tid = arg2.get("openid").toString();

String nickName = arg2.get("name").toString();*/

/*使用新浪微博登陆后获取的用户id和昵称

String sid = arg2.get("id").toString();

String nickName = arg2.get("name").toString();*/

Message msg = new Message();

msg.obj = "yes";

sharehand.sendMessage(msg);

}

@Override

public void onCancel(Platform arg0, int arg1) {

// TODO Auto-generated method stub

}

};

Handler sharehand = new Handler() {

public void handleMessage(android.os.Message msg) {

String isShare = msg.obj.toString();

if ("yes".equals(isShare)) {

Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_LONG).show();

} else

Toast.makeText(MainActivity.this, "授权失败", Toast.LENGTH_LONG).show();

};

};

/*

* QQ登陆后的监听

*/

PlatformActionListener qqlistener = new PlatformActionListener() {

@Override

public void onError(Platform arg0, int arg1, Throwable arg2) {

// TODO Auto-generated method stub

System.out.println("onError..........");

}

@Override

public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {

// TODO Auto-generated method stub

System.out.println("onComplete........");

String qs = arg0.getDb().getUserId();

Message msg = new Message();

msg.obj = qs;

msg.what = 0;

thirdhand.sendMessage(msg);

}

@Override

public void onCancel(Platform arg0, int arg1) {

// TODO Auto-generated method stub

}

};

Handler thirdhand = new Handler() {

public void handleMessage(Message msg) {

String ss = msg.obj.toString();

if (msg.what == 1) {

Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_LONG);

} else if (msg.what == 0) {

Toast.makeText(MainActivity.this, "QQ登陆成功", Toast.LENGTH_LONG);

}

};

};

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。