微信分享与QQ分享功能现在都挺常见的,可以根据一些第三方社会化分功能快速实现,不过多多少少都不怎么纯净,最好都是自己看官方文档来实现就最好了~
微信分享功能需要先在微信开放平台注册应用并获取APP ID,就可以获得微信提供的基本接口了
100
微信分享及收藏目前支持文字、图片、音乐、视频、网页共五种类型,可以分享至微信好友会话、朋友圈或添加到微信收藏
分享或收藏的目标场景,通过修改scene场景值实现。
发送到聊天界面——WXSceneSession
发送到朋友圈——WXSceneTimeline
添加到微信收藏——WXSceneFavorite
当中 onResp(BaseResp resp)
用于分享后回调
实现IWXAPIEventHandler接口,微信发送的请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法 bmpToByteArray(final Bitmap bmp, final boolean needRecycle)
用于解析图片
注意,在这里我使用到的分享的本地图片是R.drawable.ninja
,微信对图片大小有限制,我测试时因为图片太大所以一直分享不成功,最后使用了这张9kb大小的图片才成功
此外,微信文档中声明需要为WXEntryActivity声明exported属性
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true" />
这样,微信分享功能就完成了
);
params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "HiTips");
params.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN);
mTencent.shareToQQ(this, params, this);
}
@Override
public void onComplete(Object o) {
Toast.makeText(this, o.toString(), Toast.LENGTH_LONG).show();
}
@Override
public void onError(UiError uiError) {
Toast.makeText(this, uiError.errorMessage + "--" + uiError.errorCode + "---" + uiError.errorDetail, Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(this, "取消", Toast.LENGTH_SHORT).show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (mTencent != null) {
Tencent.onActivityResultData(requestCode, resultCode, data, this);
}
super.onActivityResult(requestCode, resultCode, data);
}
}
代码比较简单,思路比较容易理解
不过这里有个问题一直解决不了,可以分享到QQ空间,也可以分享到QQ收藏,就是无法发送给QQ好友,研究了很久一直无法解决,知道原因的童鞋麻烦指点下=_=
实例代码我上传到GitHub上了,https://github.com/initobject/WeiXin_QQ_Share