QQ、新浪微博、微信第三方分享的坑

    xiaoxiao2021-03-25  112

    从事应用开发两年多快三年了,还是在应用层上有这么多坑(给自己个拥ba抱zhang)。

    写分享的时候都是比较简单的吧,跟着文档写就好了(除了微信),但是当你分享完之后想要知道状态的时候这时候就要扎耳挠腮了,这里就说一下坑吧。

    新浪微博的分享回调

    调用回调的activity要去继承这个IWeiboHandler.Response接口(啪啪啪,敲黑板:必须要是activity继承这个接口,随便新建一个类继承是不行的必须要是activity,原因嘛,为微博去,我也不知道),然后还需要在:

    @Override

    protected void onNewIntent(Intent intent) {

    super.onNewIntent(intent);

    if(mChatroomShareLogic!=null){

    IWeiboShareAPI weiboApi = mChatroomShareLogic.getWeiboAPI();

    if(weiboApi!=null){

    weiboApi.handleWeiboResponse(intent, this);

    }

    }

    }这个方法里面告诉一下activity微博我要用你回调了,然后就是在初始化使用微博api的时候也要设置一下回调了:

    mWeiboShareAPI.handleWeiboResponse(intent, response);这个response就是实现了IWeiboHandler.Response接口的activity这个稀疏平常。

    QQ分享的回调:

    发送分享的时候:mTencent.shareToQQ(mActivity, params,qqShareListener);回调肯定就是那个listener了,但是就只是这么写一个新类继承其他东西都不做就想要让QQ大人来调用你,那你就还是TOO yuang too simple了。肯定还有隐形的机关要去触发了,那就是:

    @Override

    protected void onActivityResult,要在activity的这个方法里面“激活”一下告诉QQ大爷,大爷我需要回调,你给我通通气呗,于是就需要在这个方法里面加上:

    if(requestCode == Constants.REQUEST_QQ_SHARE || requestCode == Constants.REQUEST_QZONE_SHARE){

    Tencent tencent = mChatroomShareLogic.getTencent();

     if(tencent!= null)

      tencent.onActivityResult(requestCode, resultCode, data);

      tencent.handleResultData(data, mChatroomShareLogic.qqShareListener);

    }

    QQ大爷看你可怜,于是就会给你回调了。

    微信分享的回调:

    微信的文档相信大家和我一样,心中总会会:有一句妈卖批想和他细细述说,但是啊需求还是要写的,分享出去的代码啊签名啊啥的我就不说了(真的比较烦躁开发微信第三方),直接说一下回调吧。主要有三个步骤吧:

    一:在你的应用的包名的(也就是你的manifest<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.****.***.activity"package的文件夹)文件夹下新建一个wxapi文件夹;

    二:在这个文件夹里头新建一个WXEntryActivity.java的文件(敲黑板划重点,这个一定要是一模一样的固定的名字);

    三: 继承Activity实现IWXAPIEventHandler接口,这样就可以了:WXEntryActivityextends Activity implements IWXAPIEventHandler然后实现接口的方法就可以接收到回调了。

    注意:微信分享的图片不能太大,要是太大的话是不会调用到分享的界面的,更不用提回调了。官方建议好像是32KB,所以使用图片分享的时候需要注意一下。

    我也搞不明白这些个第三方都那么麻烦干啥,跟android的设计原理都是不一样的,控件直接触发有个回调接口不就行了吗?为什么回调的东西这么麻烦,而且麻烦的是文档更新一次之后写法就可以完全不一样了,所以我说的方法也是近期可以用,以后就不知道了。

    转载请注明原文地址: https://ju.6miu.com/read-10267.html

    最新回复(0)