问题
在项目中,有分享打点功能。即分享成功,会获得积分。但是同事反映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" />