【Unity】中实现微信、QQ、微博帐号登录(Android环境)(官方SDK)

对于一些没有过安卓开发经验的开发者来说,为了实现安卓第三方登陆肯定是费尽了脑汁,不知道从何着手解决,为了让开发者少走弯路,下面就给大家介绍下Unity中使用官方SDK实现微信、QQ、微博帐号登录的方法,一起来看看吧。

一、新建安卓工程并导入jar文件

  注意写好自己的包名,微信登录和微博登录都要用到包名获取签名,把获取到的签名上传到开放平台。

  填好包名后一直点next就可以了,点击finish完成创建。

  创建完成后,新建一个module类,同样写好自己的包名。

二、QQ登录

QQ登录时最简单的一个,因为不需要签名。在qq开放平台下载好sdk,然后copy到libs文件夹下。

  点击Add as Library就可以了,微信和微博的jar包导入也是一样,Unity的classes.jar也需要导入,后面就不赘述了。

  通过调用Tencent类的login函数发起登录/校验登录态。

  该API具有两个作用:

  (1)如果开发者没有调用mTencent实例的setOpenId、setAccessToken API,则该API执行正常的登录操作;

  (2)如果开发者先调用mTencent实例的setOpenId、setAccessToken API,则该API执行校验登录态的操作。如果登录态有效,则返回成功给应用,如果登录态失效,则会自动进入登录流程,将最新的登录态数据返回给应用。

建议开发者在每次应用启动时调用一次该API(先调用setOpenId、setAccessToken),以确保每次打开应用时用户都是有登录态的。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

public class MainActivity extends UnityPlayerActivity { 

    private Tencent mTencent; 

    private BaseUiListener mBaseUiListener=new BaseUiListener(); 

   

    @Override 

    protected void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        mTencent = Tencent.createInstance("你的APPID", this.getApplicationContext()); 

    } 

     

    /**

     * qq登录代码  Unity里调用

     */ 

    public void QQlogin() { 

        //登录代码。。。 

            if (!mTencent.isSessionValid()) 

            { 

                mTencent.login(this, "", mBaseUiListener); 

            } 

   

    } 

   

    /**

     * qq请求回调

     */ 

    private class BaseUiListener implements IUiListener { 

   

        @Override 

        public void onComplete(Object o) { 

            JSONObject response=(JSONObject)o;

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

//把请求到的参数传给unity 

            UnityPlayer.UnitySendMessage("ThirdLoginGameobject","QQCallBack",o.toString()); 

        } 

   

        @Override 

        public void onError(UiError uiError) { 

        } 

   

        @Override 

        public void onCancel() { 

   

        } 

    } 

   

    /**

     * qq登录页面返回处理

     * @param requestCode

     * @param resultCode

     * @param data

     */ 

    @Override 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

        Tencent.onActivityResultData(requestCode,resultCode,data,mBaseUiListener); 

    }

  然后再mainfest里配置权限。

1

2

3

4

5

6

7

8

9

10

11

12

13

"android.permission.INTERNET">

"android.permission.ACCESS_NETWORK_STATE">

 

"com.tencent.tauth.AuthActivity" android:nohistory="true" android:launchmode="singleTask">

"android.intent.action.VIEW">

"android.intent.category.DEFAULT">

"android.intent.category.BROWSABLE">

"tencent你的AppId">

SDK_V2.0引入了AssistActivity,开发者需在androidManifest.xml中注册。代码如下:

1

"com.tencent.connect.common.AssistActivity" 

android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configchanges="orientation|keyboardHidden|screenSize">

  现在就可以成功拉起QQ授权页面并登陆了。

三、微信登录

  新建一个名为wxapi的包和WXEntryActivity的类。

WXEntryActivity的代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

public class WXEntryActivity extends Activity implements IWXAPIEventHandler { 

    private static final String WEIXIN_ACCESS_TOKEN_KEY = "wx_access_token_key"

    private static final String WEIXIN_OPENID_KEY = "wx_openid_key"

    private static final String WEIXIN_REFRESH_TOKEN_KEY = "wx_refresh_token_key"

    public static WeChatCode mWeChatCode; 

   <

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值