美文网首页android系统控件常用技巧Android知识
Android 第三方分享 ShareSDK 回调不成功问题

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

作者: 程序员K哥 | 来源:发表于2016-07-19 10:32 被阅读5582次

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

    导语:

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

    新版本WXEntryActivity:

    图例1.png

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

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

    图例2.jpg

    就是需要将WXEntryActivity所在类的包名改成与package下的包名一致,即包名".wxapi";
    而微信的回调activity中默认即可,修改完成,微信才可以正确回调,以本人项目为例子:
    本人项目的包名:

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

    项目结构如下:

    图例4.png

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

    图例5.jpg

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


    最后的解决方案:

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

    图例6.png

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

    图例7.jpg

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


    结束语:

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


    欢迎关注我的微信公众号与我交流,希望与大家共同成长,未来是属于我们的!

    相关文章

      网友评论

      本文标题:Android 第三方分享 ShareSDK 回调不成功问题

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