Coder Social home page Coder Social logo

kaleai / shareloginlib Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lingochamp/shareloginlib

429.0 429.0 64.0 28.85 MB

第三方登录、分享封装库,几行代码即可完成集成,无需配置混淆。

License: MIT License

Java 56.36% HTML 43.64%
qqzone sharesdk weibo-sso-login weixin-sdk

shareloginlib's People

Contributors

echo-lgtm avatar jitpack-io avatar kaleai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shareloginlib's Issues

If authUserInfo's member variable is null, throw JSONException

UserInfoManager.getQQUserInfo(mContext, accessToken, userId, new UserInfoManager.UserInfoListener() {
            @Override
            public void onSuccess(@NonNull AuthUserInfo authUserInfo) {
                Log.d(TAG, authUserInfo.headImgUrl);
                Log.d(TAG, authUserInfo.nickName);
                Log.d(TAG, authUserInfo.sex);
                Log.d(TAG, authUserInfo.userId);
            }
            @Override
            public void onError(String s) {
                Log.d(TAG, "getUserInfoFromQQ - onError: " + s);
            }
        });

If 'authUserInfo.nickName' is null,

org.json.JSONException: No value for nickname

微信分享优化方案建议

通过观察微信官方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, shareContent, listener);
               }
          };
          activity.startActivity(new Intent(activity, EventHandlerActivity.class));
          activity.overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
    }
    wrPlatform = new WeakReference<>(curPlatform);

}
 static void onActivityCreate(EventHandlerActivity activity) {
        if(onCreateListener != null) { //判空
            onCreateListener.onCreate(activity);
        }
}

log:
屏幕快照 2019-03-22 下午1 10 28

已知的第三方SDK的bug(本lib无法解决)

QQ

  1. 开启不保留活动或遇到低内存的设备,第三方平台(如QQ)的文档中已经明确说明会无法收到回调
  2. 分享到给了QQ好友,并且用户留在了QQ,那么就有可能接收不到回调了

微信

  1. 新版本微信中,官方修改了分享的策略,即使是取消分享也会得到分享成功的回调
  2. 分享到了微信,用户留在了微信,那么就有可能接收不到回调了
  3. 如果你手机中安装了微信,并且微信已经登录。直接从你的应用分享到微信是没有任何回调的,只有在你用微信登录你的应用(无论登录是否成功,取消也行)后,才能有回调

微博

  1. 如果没进行微博的登录,直接调用微博分享,有一定概率会出现分享失败

总结

  1. 不能信任第三方的回调,即用户操作后可能会得不到任何回调
  2. 分享途中通过通知消息进入别的app后,可能会因为内存不足等情况,没有回调
  3. 当开启不保留活动后,有可能会出现界面的显示异常,微博、微信尤其明显

share回调问题

微信朋友圈的ShareListener在取消分享后仍会走onSuccess方法,qq好友以及qq空间在取消分享和分享后都会走onComplete方法而不走onSuccess方法。

默认icon,和过期时间处理问题

你好,请问一下,第一次登录调到三方登录界面的,默认显示的 icon 怎么是 app 字样的图片。怎么处理过期的问题。

关于SlConfig的使用问题

关于这些配置是否有更好的方法来实现?因为在程序初始化时它是作为一个静态变量保存在那里的,占用着内存,可能存在内存泄漏,而且这些配置除了分享的时候其它的情况下都是不需要的

有些手机闪退

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 invoke interface method 'void kale.sharelogin.EventHandlerActivity$OnCreateListener.onCreate(kale.sharelogin.EventHandlerActivity)' on a null object reference
6 kale.sharelogin.ShareLoginLib.onActivityCreate(ShareLoginLib.java:180)
7 kale.sharelogin.EventHandlerActivity.onCreate(EventHandlerActivity.java:33)
8 android.app.Activity.performCreate(Activity.java:7183)
9 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
10 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2908)
11 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030)
12 android.app.ActivityThread.-wrap11(Unknown Source:0)
13 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
14 android.os.Handler.dispatchMessage(Handler.java:105)
15 android.os.Looper.loop(Looper.java:164)
16 android.app.ActivityThread.main(ActivityThread.java:6938)
17 java.lang.reflect.Method.invoke(Native Method)
18 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
19 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

关于qq,微博的scope

您好,我在第三方平台并没有找到相关的scope说明,您能给个链接或者讲解下么

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.