当前位置:主页 > 移动开发 > Android代码 >

Android实现微信登录的示例代码

时间:2023-01-31 09:05:01 | 栏目:Android代码 | 点击:

微信登录的实现与qq登录类似。不过微信登录比较麻烦,需要拿到开发者资质认证,花300块钱,然后应用的话还得有官网之类的,就是比较繁琐的前期准备工作,如果在公司里,这些应该都不是事,会有相关人提前准备好。在这里我们已经拿到了开发者认证,并且申请到了微信登录的授权。

在这里插入图片描述

现在直接介绍mob来实现微信登录的代码,并获取微信的相关数据,比较简单。

一、布局界面

布局界面只需要一个button来触发授权就可以

    <Button
        android:id="@+id/wxlogin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="微信登录" />

二、MainActivity.java

public class MainActivity extends Activity {
    private Button wxlogin;
    private Platform wx;
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        wxlogin = (Button) login_view.findViewById(R.id.wxlogin);
        wxlogin.setOnClickListener(new wxloginListener());
        }


private class wxloginListener implements OnClickListener {
        @Override
        public void onClick(View arg0) {
            wx = ShareSDK.getPlatform(Wechat.NAME);
            System.out.println("微信是否已经授权1:"+wx.isAuthValid());
            if(wx.isAuthValid()){
                wx.removeAccount(true);
            }
            System.out.println("微信是否已经授权2:"+wx.isAuthValid());
            wx.SSOSetting(false); // 设置false表示使用SSO授权方式
            wx.authorize();
            wx.showUser(null);
            wx.setPlatformActionListener(new PlatformActionListener() {
                @Override
                public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
                    System.out.println("wx登录测试hashMap"+hashMap);
                    System.out.println("wx登录测试hashMap"+hashMap.toString());
                    String unionid = (String) hashMap.get("unionid");
                    System.out.println("wx登录测试unionid"+unionid);
                    System.out.println("wx登录测试"+platform.getDb().toString());
                    String thirdLoginId = platform.getDb().getUserId();
                    System.out.println("wx登录测试thirdLoginId:"+thirdLoginId);
                    String userName = platform.getDb().getUserName();
                    System.out.println("wx登录测试userName:"+ userName);
                    String image = platform.getDb().getUserIcon();
                    System.out.println("wx登录测试image:"+image);
                    String sex = qq.getDb().getUserGender();
                    System.out.println("wx登录测试sex:"+sex);
                    System.out.println("wx登录测试:"+"成功了");
                }

                @Override
                public void onError(Platform platform, int i, Throwable throwable) {

                }

                @Override
                public void onCancel(Platform platform, int i) {

                }
            });
            wx.removeAccount(true);
            System.out.println("微信是否已经授权3:"+wx.isAuthValid());
        }
    }
}

在这里插入图片描述

这是官方提供的接口,

plat. authorize():要功能不要数据 单独授权(只获取授权信息,不获取用户信息)plat. showUser(null):要数据无需功能à授权并获取信息(除了授权信息,其他用户信息可以在oncomplete中的hashmap中获取)

在这里插入图片描述

在这里插入图片描述

这样就拿到的微信的授权,并且获得数据,然后将数据向数据库中存储,就可以做微信登录了。
总体流程来说还是比较简单,直接调用接口就行,就是前期的审核准备工作比较麻烦。

您可能感兴趣的文章:

相关文章