手把手带你实现QQ分享

作者: Android_董 | 来源:发表于2019-08-29 12:16 被阅读0次
    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分享

    相关文章

      网友评论

        本文标题:手把手带你实现QQ分享

        本文链接:https://www.haomeiwen.com/subject/xxydectx.html