android接入微信分享(朋友、朋友圈)、QQ分享(好友、空间)
1、申请注册你的appid
2、下载sdk
QQ: http://wiki.open.qq.com/wiki/mobile/SDK%E4%B8%8B%E8%BD%BD
微信:https://open.weixin.qq.com/cgi-bin/readtemplate?t=resource/app_download_android_tmpl&lang=zh_CN
3、将下载的文件

导入进工程下的app/libs/下,liba开头的的微信需要的,另外两个是QQ需要的
阅读官方文档QQ:http://wiki.open.qq.com/wiki/mobile/API%E8%B0%83%E7%94%A8%E8%AF%B4%E6%98%8E#portal-header
微信:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317340&token=&lang=zh_CN
PS: 微信需要安装签名生成工具输入包名申请。
4、在 AndroidManifest.xml 中配置
微信:
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true">
</activity>
QQ:
<activity
android:name="com.tencent.tauth.AuthActivity"
android:noHistory="true"
android:launchMode="singleTask" >
<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="tencent你的appid" />
</intent-filter>
</activity>
<activity android:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="orientation|keyboardHidden|screenSize" />
</application>
5、接下来就是代码,微信还需要在报名下指定文件夹中新建指定类名的activity

WXEntryActivity类:
public class ShareActivity extends BaseActivity implements View.OnClickListener {
private final String W_APPID = "wxd70e5a411362e82b";
private IWXAPI api;
private final String Q_APPID = "1105648864";
private Tencent mTencent;
private Button quit;
private ImageView qZone;
private ImageView qq;
private ImageView weichat;
private ImageView weichatFriend;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.share_popup);
regToWx();
regToQQ();
setBaseActionbar();
initView();
}
private void regToQQ() {
// Tencent类是SDK的主要实现类,开发者可通过Tencent类访问腾讯开放的OpenAPI。
// 其中APP_ID是分配给第三方应用的appid,类型为String。
mTencent = Tencent.createInstance(Q_APPID, mContext);
}
private void regToWx() {
api = WXAPIFactory.createWXAPI(this, W_APPID, true);
api.registerApp(W_APPID);
}
private void initView() {
quit = (Button) findViewById(R.id.quit);
qZone = (ImageView) findViewById(R.id.qzone);
qq = (ImageView) findViewById(R.id.qq);
weichat = (ImageView) findViewById(R.id.weichat);
weichatFriend = (ImageView) findViewById(R.id.weichat_friend);
actionbarLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
quit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
qZone.setOnClickListener(this);
qq.setOnClickListener(this);
weichat.setOnClickListener(this);
weichatFriend.setOnClickListener(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
private void setBaseActionbar() {
setActionbarLeft(R.mipmap.pixel_ic_toolbar_back);
setActionbarTitle("分享", "SAHRE");
hideActionbarRight();
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.qzone:
// mLog("点击QQ空间");
qq(true);
break;
case R.id.qq:
// mLog("点击QQ");
qq(false);
break;
case R.id.weichat:
// mLog("点击威信");
weiChat(0);
break;
case R.id.weichat_friend:
// mLog("点击朋友圈");
weiChat(1);
break;
default:
break;
}
}
private void qq(boolean flag) {
if (mTencent.isSessionValid() && mTencent.getOpenId() == null) {
mToast("您还未安装QQ", 0);
}
final Bundle params = new Bundle();
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_APP);
params.putString(QQShare.SHARE_TO_QQ_TITLE, "要分享的标题");
params.putString(QQShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要");
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, "http://imgcache.qq.com/qzone/space_item/pre/0/66768.gif");
params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "测试应用222222");
if(flag){
params.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN);
}
mTencent.shareToQQ(ShareActivity.this, params, new ShareListener());
}
// 0-分享给朋友 1-分享到朋友圈
private void weiChat(int flag) {
if (!api.isWXAppInstalled()) {
mToast("您还未安装微信", 0);
return;
}
//创建一个WXWebPageObject对象,用于封装要发送的Url
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = "http://www.mojichina.com/";
//创建一个WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = "测试";
msg.description = "这是我做的一款天气类app,高端大气上档次,快来看看吧!";
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());//transaction字段用于唯一标识一个请求,这个必须有,否则会出错
req.message = msg;
//表示发送给朋友圈 WXSceneTimeline 表示发送给朋友 WXSceneSession
req.scene = flag == 0 ? SendMessageToWX.Req.WXSceneSession : SendMessageToWX.Req.WXSceneTimeline;
api.sendReq(req);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
ShareListener myListener = new ShareListener();
Tencent.onActivityResultData(requestCode, resultCode, data, myListener);
}
private class ShareListener implements IUiListener {
@Override
public void onCancel() {
mToast("分享取消", 0);
}
@Override
public void onComplete(Object arg0) {
mToast("分享成功", 0);
}
@Override
public void onError(UiError arg0) {
mToast("分享出错", 0);
}
}
}
代码应该一目了然,actionbarLeft是BaseActivity中的,无视就行,接下来是几张截图,应该看的更明白





android接入微信分享(朋友、朋友圈)、QQ分享(好友、空间)的更多相关文章
- asp.net mvc 如何调用微信jssdk接口:分享到微信朋友(圈)| 分享到qq空间
如何在asp.net mvc 项目里, 调用微信jssdk接口,现实功能: 分享到微信朋友(圈)| 分享到qq空间 1 创建一个Action,准备一些数据,初始化数据(签名): /// <sum ...
- Android 接入微信分享错误码-6
官方的常见错误表示签名出错登录以后,需要重装微信(也就是清除微信本地数据)
- 如何在不接入微信API的情况下自定义分享内容(图片、链接、标题)
方法如下: 1.设置分享title:动态改变document.title值即可: document.title = 'test' 2.设置分享图片:在页面隐藏一张尺寸大于290*290的图(图片需要容 ...
- Android接入微信SDK之一:发起微信授权登录
1.重要的事情首先说! 包名.应用签名.app id 三者都必须和在腾讯上申请的一致!!!否则将不能成功. 包名:就是在腾讯上申请的包名 应用签名:使用微信官网提供的<签名生成工具>(这个 ...
- [h5+api]移动app开发用到的微信好友,朋友圈,qq好友,新浪微博分享合集
适用H5+环境,能够使用plus方法的移动app中 /** * Created by HBuilder. * User: tyx * Date: 2018-11-21 * Time: 17:28:51 ...
- Android 接入支付宝支付实现
接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...
- Android接入支付宝支付实现
接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...
- UC和QQ两个主流浏览器 * 点击触发微信分享到朋友圈或发送给朋友的功能(转载)
转载(声明:仅供学习使用) /** * 此插件主要作用是在UC和QQ两个主流浏览器 * 上面触发微信分享到朋友圈或发送给朋友的功能 * 代码编写过程中 参考: * http://mjs.sinaimg ...
- Android之微信开放平台实现分享(分享好友和朋友圈)
开发中分享操作往往经常遇到,而且还是一些比较大型一定的平台,如微信,QQ,微博等.写这篇博客主要是把微信的的分享和相关操作表达一下,分享可以包含:文字,视频,音乐,图片等分享. 分享可以有 分享给好友 ...
随机推荐
- ubuntu 14.04 64位安装iNodeClient
ubuntu 14.04 64位安装iNodeClieng(华三校园客服端) http://pan.baidu.com/s/12dpxk ubuntu 14.04 64bit Install H3C ...
- iOS-申请邓白氏编码的超详细流程介绍
导读 11.22号要申请苹果公司开发者账号,所以当天下午申请了邓白氏编码,昨天邓白氏编码下来了,这里就做一下记录,分享给大家. 概览 11.22提交的邓白氏编码申请,11.28(礼拜一)华夏邓白氏发来 ...
- 查找增强出口和BADI程序
*&---------------------------------------------------------------------* *& Report Z_FIND_EX ...
- Ajax&Java
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML) 是一种基于浏览器的XMLHttpRequest对象实现的创建交互式网页应用的网页开发技 ...
- WinForm 公共控件
一.窗体属性: 1.AcceptButton - 窗体的“接受”按钮.如果设置该属性,每次用户按“Enter”键都相当于“单击”了该按钮. 需要设置哪个键,就在后面选择. 2.CancelButton ...
- 关于nginx反向代理后获取不到客户端的真实ip地址问题
前段时间在我的网站上用nginx做了一下反向代理,最近发现不能获取客户端ip了,都是拿到的127.0.0.1的本地ip... 通过查资料后,再去看了看我的配置文件,结果发现我没有如下配置: nginx ...
- css 伪元素分享!!!
最近接触到的css 伪元素觉得还算不错 分享下: 1.清楚内盒浮动设置: ;} .back_list ul:after{;visibility: hidden;}/*清楚内盒浮动设置*/ 2.伪元素a ...
- PHP 数据安全问题总结
总结:关键的判断,比较尽量使用=== 类型和值都比较的恒等比较 1.if($var) $var 遵循boolean 转换. 当转换为 boolean 时,以下值被认为是 FALSE: 布尔值 FALS ...
- 使用AXIS2客户端调用 WEBSERVICE
问题 在调用WEBSERVICE时,可以使用wsdl2java生成java代码,调用接口,这种方法在接口固定的情况下是一种不错的选择,如果需要动态调用接口,那么这样就行不通了. 解决办法 1.直接构建 ...
- 控件包含代码块(即 <% ... %>),因此无法修改控件集合
错误: “/”应用程序中的服务器错误. 控件包含代码块(即 <% ... %>),因此无法修改控件集合. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解 ...