当前位置:首页 > 通信资讯 > 正文

harmonyos 第三方登录之qq登录(harmonyos 第三方登录之qq登录)

前言

因为鸿蒙系统刚出不久,官方的第三方登录SDK还没出来,下面就介绍下在鸿蒙应用中实现QQ登录的方法(支持唤起QQ安卓客户端进行授权)

前期准备

登录QQ开放平台 > 应用管理 > 创建应用 ,创建一个网站应用。

注意:要选择网站应用,移动应用和小程序不适用该方案。

编写代码

判断是否已登录

获取登录状态

在入口AbilitySliceMainAbilitySlice中进行判断。

从数据库获取token的值判断是否已经登录账号 (已登录返回token,未登录返回null)

  1. // 创建数据库(这里使用官方提供的“轻量级数据存储”,相关文档:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/database-preference-guidelines-0000000000030083)
  2. Preferences preferences = new DatabaseHelper(getApplicationContext()).getPreferences("DATA_NAME");
  3. // 从数据库获取token的值判断是否已经登录账号 (已登录返回token,未登录返回null)
  4. String token = preferences.getString("token",null);

进行相应跳转

已登录跳转至个人界面MyAbility,未登录跳转至登录界面LoginAbility.

  1. if(token != null){
  2. // 已登录,跳转至MyAbility
  3. Intent myIntent = new Intent();
  4. myIntent.setParam("token", token);
  5. Operation myOperation = new Intent.OperationBuilder()
  6. .withBundleName("cn.dsttl3.test")
  7. .withAbilityName("cn.dsttl3.qqlogin.MyAbility")
  8. .build();
  9. myIntent.setOperation(myOperation);
  10. startAbility(myIntent);
  11. terminateAbility();
  12. }else {
  13. // 未登录,跳转至LoginAbility
  14. Intent loginIntent = new Intent();
  15. Operation loginOperation = new Intent.OperationBuilder()
  16. .withBundleName("cn.dsttl3.test")
  17. .withAbilityName("cn.dsttl3.qqlogin.LoginAbility")
  18. .build();
  19. loginIntent.setOperation(loginOperation);
  20. startAbility(loginIntent);
  21. terminateAbility();
  22. }

登录界面的操作

申请网络访问权限

在config.json添加

  1. "reqPermissions": [
  2. {
  3. "name": "ohos.permission.INTERNET"
  4. }
  5. ]

登录界面布局文件ability_login.xml

在布局文件中添加以后webview组件

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。