ShareLoginLib
ShareLoginLib copied to clipboard
第三方登录、分享封装库,几行代码即可完成集成,无需配置混淆。
有些手机闪退
1 java.lang.RuntimeException:Unable to start activity ComponentInfo{com.jixun.router/kale.sharelogin.EventHandlerActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void kale.sharelogin.EventHandlerActivity$OnCreateListener.onCreate(kale.sharelogin.EventHandlerActivity)' on a null object reference -- 2 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2955) 3 ...... 4 Caused by: 5 java.lang.NullPointerException:Attempt to...
通过观察微信官方demo的log可以看到。分享以后点击“回到app”,才会去启动WXEntryActivity(这里我们使用别名所以是EventHandlerActivity),然后触发回到方法。假如我们点击“留在微信”,点返回是不会触发任何回调事件。 而该库采用的策略是先启动一个透明Activity,这样会出现一个问题,分享后留在微信,此时不触发回调,我们的透明Activity不会被销毁。附上我的解决方案(分享测试通过,登录未测试): ``` ShareLoginLib.java private static void doAction(...){ //判断如果是微信平台,则先不启动透明Activity,假如有回调微信会帮我们启动 if(curPlatform instanceof WechatPlatform){ curPlatform.doShare(activity,shareType, shareContent, listener); }else { onCreateListener = new EventHandlerActivity.OnCreateListener() { @Override public void onCreate(EventHandlerActivity eventActivity) { curPlatform.doShare(eventActivity, shareType,...
微信朋友圈的ShareListener在取消分享后仍会走onSuccess方法,qq好友以及qq空间在取消分享和分享后都会走onComplete方法而不走onSuccess方法。
## QQ 5. 开启不保留活动或遇到低内存的设备,第三方平台(如QQ)的文档中已经明确说明会无法收到回调 2. 分享到给了QQ好友,并且用户留在了QQ,那么就有可能接收不到回调了 ## 微信 1. 新版本微信中,官方修改了分享的策略,即使是取消分享也会得到分享成功的回调 2. 分享到了微信,用户留在了微信,那么就有可能接收不到回调了 3. 如果你手机中安装了微信,并且微信已经登录。直接从你的应用分享到微信是没有任何回调的,只有在你用微信登录你的应用(无论登录是否成功,取消也行)后,才能有回调 ## 微博 1. 如果没进行微博的登录,直接调用微博分享,有一定概率会出现分享失败 ## 总结 1. 不能信任第三方的回调,即用户操作后可能会得不到任何回调 2. 分享途中通过通知消息进入别的app后,可能会因为内存不足等情况,没有回调 4. 当开启不保留活动后,有可能会出现界面的显示异常,微博、微信尤其明显