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或规定外的加密套件,可能无法正常访问华为账号服务。
阅读全文