
前言
因为鸿蒙系统刚出不久,官方的第三方登录SDK还没出来,下面就介绍下在鸿蒙应用中实现QQ登录的方法(支持唤起QQ安卓客户端进行授权)
前期准备
登录QQ开放平台 > 应用管理 > 创建应用 ,创建一个网站应用。
注意:要选择网站应用,移动应用和小程序不适用该方案。
编写代码
判断是否已登录
获取登录状态
在入口AbilitySliceMainAbilitySlice中进行判断。
从数据库获取token的值判断是否已经登录账号 (已登录返回token,未登录返回null)
- // 创建数据库(这里使用官方提供的“轻量级数据存储”,相关文档:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/database-preference-guidelines-0000000000030083)
- Preferences preferences = new DatabaseHelper(getApplicationContext()).getPreferences("DATA_NAME");
- // 从数据库获取token的值判断是否已经登录账号 (已登录返回token,未登录返回null)
- String token = preferences.getString("token",null);
进行相应跳转
已登录跳转至个人界面MyAbility,未登录跳转至登录界面LoginAbility.
- if(token != null){
- // 已登录,跳转至MyAbility
- Intent myIntent = new Intent();
- myIntent.setParam("token", token);
- Operation myOperation = new Intent.OperationBuilder()
- .withBundleName("cn.dsttl3.test")
- .withAbilityName("cn.dsttl3.qqlogin.MyAbility")
- .build();
- myIntent.setOperation(myOperation);
- startAbility(myIntent);
- terminateAbility();
- }else {
- // 未登录,跳转至LoginAbility
- Intent loginIntent = new Intent();
- Operation loginOperation = new Intent.OperationBuilder()
- .withBundleName("cn.dsttl3.test")
- .withAbilityName("cn.dsttl3.qqlogin.LoginAbility")
- .build();
- loginIntent.setOperation(loginOperation);
- startAbility(loginIntent);
- terminateAbility();
- }
登录界面的操作
申请网络访问权限
在config.json添加
- "reqPermissions": [
- {
- "name": "ohos.permission.INTERNET"
- }
- ]
登录界面布局文件ability_login.xml
在布局文件中添加以后webview组件








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