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