HarmonyOS SDK 闭源开放能力 Account Kit具体有哪些功能?
摘要:1.问题描述: 退出登录之后需要手动清空页面栈和storage吗? 解决方案: 当点击退出登录或Token过期跳转至登录页时都需要显式清空路由栈,HarmonyOS路由栈(通过NavDestination组件管理)默认不会自动清空历史页面,
1.问题描述:
退出登录之后需要手动清空页面栈和storage吗?
解决方案:
当点击退出登录或Token过期跳转至登录页时都需要显式清空路由栈,HarmonyOS路由栈(通过NavDestination组件管理)默认不会自动清空历史页面,即使调用logout接口跳转到登录页,原栈中的页面实例(如多个首页)依然存在。
不清空路由栈,可能会导致以下问题:
内存泄漏:未销毁的页面可能持续占用资源。
接口重复调用:若栈中存在多个首页实例,每个实例的aboutToAppear生命周期都可能触发接口请求,导致多次调用(如用户遇到的首页接口请求数十次的问题)。
除了路由栈,和用户信息相关的storage也需要进行清除,建议储存的时候就根据用户分类,并做区分。"
2.问题描述:
服务端暂未开发,用户点击华为账号一键登录后,客户端APP如何通过ArkTS直接获取华为账号绑定的手机号?
解决方案:
如果服务器暂未开发,可临时在客户端APP内通过rcp模块向华为账号服务器发送请求,获取手机号。示例代码如下:
/**
* 通过rcp向华为账号服务器发送请求,获取华为账号绑定的手机号
* @param authCode 授权码,用户点击华为账号一键登录后返回授权码
* @returns
*/
async getPhoneNumberFromHWAccountServer(authCode: string): Promise<hwphoneinfo> {
let hwPhoneInfo = new HWPhoneInfo();
// 在创建应用后,由华为开发者联盟为应用分配的唯一标识
const clientId = '123456789';
// 在创建应用后,由华为开发者联盟为应用分配的密钥(Client Secret)
const clientSecret = 'abcdefghijk';
const url = 'https://account-api.cloud.huawei.com/oauth2/v6/quickLogin/getPhoneNumber';
const headers: rcp.RequestHeaders = {
""Content-Type"": ""application/json;charset=UTF-8""
}
// 为了更安全的网络访问,请务必升级到TLS1.2版本。若使用协议是TLS1.0、TLS1.1或规定外的加密套件,可能无法正常访问华为账号服务。
