Android 第三方分享 ShareSDK 回调不成功问题

未经本人授权,不得转载!否则必将维权到底

导语:

最近项目有个需求,需要集成分享到微信好友、微信朋友圈的功能。按照Mob官网的集成文档一路走下来,没有遇到大的问题。详细的ShareSDK集成教程可查阅这篇博客:在Android Studio中使用shareSDK进行社会化分享(图文教程)。
然而在分享微信好友后,回到自己的项目上,并没有”分享成功/失败”这样的Toast提示。按照以往的开发经验,第三方分享一定会有回调接口让我实现,但是看了新版本的ShareSDK继承的类跟以前不太一样,并没有在WXEntryActivity实现回调接口。顿时一阵疑惑,经过Google+Mob官方文档最后得以实现,觉得有必要写下来让大家以后遇到这个问题的时候能够快速解决。

新版本WXEntryActivity:

Android 第三方分享 ShareSDK 回调不成功问题_第1张图片

如上图所示,WXEntryActivity里面只重写了onGetMessageFromWXReq()和onShowMessageFromWXReq()这两个方法,微信本身并没有执行回调方法。这样就难道就没有办法监听”分享成功/失败”了吗?

后来通过查看Mob官方论坛,发现了解到集成完ShareSDK之后要对微信的这个包名进行修改

Android 第三方分享 ShareSDK 回调不成功问题_第2张图片

就是需要将WXEntryActivity所在类的包名改成与package下的包名一致,即包名”.wxapi”;
而微信的回调activity中默认即可,修改完成,微信才可以正确回调,以本人项目为例子:
本人项目的包名:
Android 第三方分享 ShareSDK 回调不成功问题_第3张图片

那WXEntryActivity所在类的包名为:com.xiaoy.keithxiaoy.main.wxapi

项目结构如下:

Android 第三方分享 ShareSDK 回调不成功问题_第4张图片

通过上述步骤后,发现分享成功返回自己的app时,弹出Toast,提示”分享成功”。

Android 第三方分享 ShareSDK 回调不成功问题_第5张图片

虽然这里已经满足项目的需求,但对提示文字无法自控,也无法在回调方法里面实现自己后续的操作,所以这并不是一个完美的解决方案。


最后的解决方案:

后来在自己项目具体实现分享功能的Activity里面翻ShareSDK提供的API发现了setcallback(),里面有三个回调监听,分别是完成、错误、取消:

Android 第三方分享 ShareSDK 回调不成功问题_第6张图片

到这里,大家肯定知道这三个回调监听的作用了,这里我们可以实现分享成功/失败/取消后一系列的操作。
最后来一张分享成功后,回到自己app的提示效果图:

Android 第三方分享 ShareSDK 回调不成功问题_第7张图片

####再次提醒:必须按照上面的方法,一定将WXEntryActivity所在类的包名改成与package下的包名一致,并且在微信端分享后,不点击留在微信,而点击回到app才能触发此回调方法!!!

结束语:

到这里,这个分享到微信的小问题就解决了,秉着自己记录下来,自己或者他人出现同样问题能快速解决的心态来写这篇文章的。编程的路还很长,一起努力把。


本文原创发布于微信公众号「keithxiaoy」,编程、思维、成长、正能量,关注并回复「编程」、「阅读」、「Java」、「Python」等关键字获取免费学习资料

不要给自己的人生设限

你可能感兴趣的:(Android)