Android基础Android开发Android开发经验谈

手把手带你实现QQ分享

2019-08-29  本文已影响0人  Android_董
android.jpg

QQ分享主要有分享到好友、分享到空间

分享到好友
1、图文分享(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT)
2、纯图片分享(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_IMAGE)
3、音乐分享(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_AUDIO)
4、应用分享(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_APP)
5、携带APK JSON串分享(注意:携带ARK信息的同时,需要携带原本的图文信息,ARK信息只是作为可选项,传递的JSON串为空或者不规范,分享的仍然为原本的图文信息。)
分享到空间
1、图文分享(QzoneShare.SHARE_TO_QZONE_KEY_TYPE, QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT)
2、发表说说、视频、上传图片(QzonePublish.PUBLISH_TO_QZONE_KEY_TYPE, QzonePublish.PUBLISH_TO_QZONE_TYPE_PUBLISHMOOD)

API文档查询

分享图文消息

final Bundle params = new Bundle();
//分享的类型  SHARE_TO_QQ_TYPE_DEFAULT为图文分享(普通分享)
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
//分享的标题 最长30个字符
params.putString(QQShare.SHARE_TO_QQ_TITLE, "要分享的标题");
//分享的消息摘要 最长40个字
params.putString(QQShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要");
//这条消息被好友点击之后跳转的连接
params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, "http://www.qq.com/news/1.html");
//图片的URL或者本地路径
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, "http://www.45fan.com/uploads/allimg/130707/3767_130707110914_1.gif");
//手Q客户端顶部,替换“返回”按钮文字,如果为空,用返回代替
params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "测试应用222222");
//分享额外选项  SHARE_TO_QQ_FLAG_QZONE_AUTO_OPEN  分享到QQ空间
//分享额外选项  SHARE_TO_QQ_FLAG_QZONE_ITEM_HIDE  分享给好友
params.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_ITEM_HIDE);
//这里分享尽量放在主线程来完成
mTencent.shareToQQ(QQLoginActivity.this, params, new BaseUi());

分享纯图片(只可以分享本地图片)

Bundle params1 = new Bundle();
//纯图片分享只可以是本地图片
//分享的类型  SHARE_TO_QQ_TYPE_IMAGE(纯图片分享)
params1.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_IMAGE);
//这里我是为了方便从本地直接拿到一个图片地址放到这里的,大家可以根据自己的需求来拿去本地图片的地址
params1.putString(QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL, "/storage/emulated/0/klcert1574583840887.jpg");
//分享之后弹框左边按钮的内容(这里基本上都写上自己应用的名字)
params1.putString(QQShare.SHARE_TO_QQ_APP_NAME, "AndroidProject");
params1.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_ITEM_HIDE);
mTencent.shareToQQ(QQLoginActivity.this, params1, new BaseUi());

分享音乐

final Bundle params2 = new Bundle();
//分享音乐 SHARE_TO_QQ_TYPE_AUDIO(分享音乐)
params2.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_AUDIO);
params2.putString(QQShare.SHARE_TO_QQ_TITLE, "要分享的标题");
params2.putString(QQShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要");
params2.putString(QQShare.SHARE_TO_QQ_TARGET_URL, "http://c.y.qq.com/v8/playsong.html?songid=109325260&songmid=000kuo2H2xJqfA&songtype=0&source=mqq&_wv=1");
params2.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, "http://y.gtimg.cn/music/photo_new/T002R300x300M000003KIU6V02sS7C.jpg?max_age=2592000");
//音乐连接
params2.putString(QQShare.SHARE_TO_QQ_AUDIO_URL, "http://ws.stream.qqmusic.qq.com/C100000kuo2H2xJqfA.m4a?fromtag=0");
params2.putString(QQShare.SHARE_TO_QQ_APP_NAME, "测试应用222222");
params2.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_ITEM_HIDE);
mTencent.shareToQQ(QQLoginActivity.this, params2, new BaseUi());

分享应用

final Bundle param3 = new Bundle();
//分享应用 SHARE_TO_QQ_TYPE_APP
param3.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_APP);
param3.putString(QQShare.SHARE_TO_QQ_TITLE, "要分享的标题");
param3.putString(QQShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要");
param3.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, "http://url.cn/424xgoi");
param3.putString(QQShare.SHARE_TO_QQ_AUDIO_URL, "http://ws.stream.qqmusic.qq.com/C100000kuo2H2xJqfA.m4a?fromtag=0");
param3.putString(QQShare.SHARE_TO_QQ_APP_NAME, "测试应用222222");
param3.putInt(QQShare.SHARE_TO_QQ_EXT_INT, QQShare.SHARE_TO_QQ_FLAG_QZONE_ITEM_HIDE);
mTencent.shareToQQ(QQLoginActivity.this, param3, new BaseUi());

分享到空间图文分享

Bundle params4 = new Bundle();
params4.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE, QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT);
params4.putString(QzoneShare.SHARE_TO_QQ_TITLE, "标题");// 标题                params4.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, "要分享的摘要");// 摘要                params4.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, "http://www.qq.com/news/1.html");
// 内容地址
ArrayList<String> imgUrlList = new ArrayList<>();
// 图片地址
imgUrlList.add("http://f.hiphotos.baidu.com/image/h%3D200/sign=6f05c5f929738bd4db21b531918a876c/6a600c338744ebf8affdde1bdef9d72a6059a702.jpg");             params4.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL, imgUrlList);
mTencent.shareToQzone(QQLoginActivity.this, params4, new BaseUi());

分享到空间图文分享

Bundle params5 = new Bundle();
params5.putInt(QzonePublish.PUBLISH_TO_QZONE_KEY_TYPE, QzonePublish.PUBLISH_TO_QZONE_TYPE_PUBLISHMOOD);
params5.putString(QzonePublish.PUBLISH_TO_QZONE_SUMMARY, "说说正文");
ArrayList<String> imgUrlList1 = new ArrayList<>();
imgUrlList1.add("http://f.hiphotos.baidu.com/image/h%3D200/sign=6f05c5f929738bd4db21b531918a876c/6a600c338744ebf8affdde1bdef9d72a6059a702.jpg");
params5.putStringArrayList(QzonePublish.PUBLISH_TO_QZONE_IMAGE_URL,
imgUrlList1);// 图片地址ArrayList
mTencent.publishToQzone(QQLoginActivity.this, params5, new BaseUi());

遇到的问题

问题一.png

原因

这里主要是因为应用的没有填写应用包名和应用签名
获取包名和应用签名下载地址
流程参考

注意事项

1、在腾讯开放平台创建自己的应用,确保要和QQ互联上面的应用进行关联(最好创建一样的应用,避免不必要的报错出现)
2、在QQ互联上将自己的信息填写全部,主要就是手持身份证
3、修改应用里面的平台信息,应用包名 应用签名
将这些填写正确,审核通过之后,可以避免很多不必要的报错

下一篇会通过ShareSDK社会化分享来实现QQ登录以及分享期待你的关注!!!

第三方登录、分享相关文章阅读

1、手把手带你实现QQ登录
2、手把手带你实现QQ分享

上一篇下一篇

猜你喜欢

热点阅读