ShareSDK QQ分享回调不一致

问题

在项目中,有分享打点功能。即分享成功,会获得积分。但是同事反映QQ在取消分享以后,也显示分享成功。后来我打印了日志,发现QQ在分享成功和取消分享以后都走的是onComplete方法。但是微博取消分享却能走onCancle()方法。

  oks.setCallback(new PlatformActionListener() {
            @Override
            public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
                //1 记录积分
                RecordManager.recordEvent(new com.trs.nxnews.common.recorde.base.event.ShareEvent());
                ToastUtil.getInstance().showToast("分享成功");
            }

            @Override
            public void onError(Platform platform, int i, Throwable throwable) {
                ToastUtil.getInstance().showToast("分享失败");
            }

            @Override
            public void onCancel(Platform platform, int i) {
                ToastUtil.getInstance().showToast("取消分享");
            }
        });

解决

后来咨询了ShareSDK的客服人员。了解到了,原来QQ分享还需要配置ShareSDK中的Manifest文件。也就是这一段

 <!-- QQ和QQ空间分享 QQ登录的回调必须要配置的 -->
            <intent-filter>
                <data android:scheme="tencent123456789" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

注意:这里的scheme=”tencent+appId”,而appId就是你在ShareSDK.xml中配置的

    <QQ
        Id="6"
        SortId="6"
        AppId="123456789"
        AppKey="cyq6BZiwxbmVKHmz"
        ShareByAppClient="true"
        Enable="true" />

猜你喜欢

转载自blog.csdn.net/qq_22706515/article/details/79268514
今日推荐