当前位置: 首页 > wzjs >正文

网站推广工作长沙网络推广公司

网站推广工作,长沙网络推广公司,网站安全狗,公司新闻网页制作软件android的登录功能和前端一样,需要保存登录的用户信息。 创建一个工具类 // 用户工具类,用于管理用户登录状态和用户信息 object AppUserUtil {// 常量定义private const val LOGGED_FLAG "logged_flag" // 登录状态的键名private const va…

android的登录功能和前端一样,需要保存登录的用户信息。

  1. 创建一个工具类
// 用户工具类,用于管理用户登录状态和用户信息
object AppUserUtil {// 常量定义private const val LOGGED_FLAG = "logged_flag" // 登录状态的键名private const val USER_INFO = "user_info"     // 用户信息的键名private const val TAG = "AppUserUtil"         // 日志标签// 登录状态属性var isLogged: Boolean// 获取登录状态,默认值为 falseget() = DataStoreUtils.readBooleanData(LOGGED_FLAG, false)// 设置登录状态,并同步保存到 DataStoreset(value) = DataStoreUtils.saveSyncBooleanData(LOGGED_FLAG, value = value)// 用户信息属性var userInfo: UserInfo?// 获取用户信息,从 DataStore 中读取并反序列化为 UserInfo 对象get() = DataStoreUtils.readStringData(USER_INFO).fromJson()// 设置用户信息,并同步保存到 DataStoreset(value) = DataStoreUtils.saveSyncStringData(USER_INFO, value = value?.toJson() ?: "")// 登录方法fun onLogin(userInfo: UserInfo) {isLogged = true               // 设置登录状态为 truethis.userInfo = userInfo      // 保存用户信息Log.d(TAG, "onLogin: $userInfo") // 打印登录日志}// 登出方法fun onLogOut() {isLogged = false              // 设置登录状态为 falsethis.userInfo = null          // 清空用户信息}
}
  1. 发起登录请求,登录成功,则调用工具类的onLgoin方法
 private fun login() {viewModelScope.launch {flow {emit(service.login(viewStates.account.trim(), viewStates.password.trim()))}.map {if (it.errorCode == 0) {if (it.data != null) {HttpResult.Success(it.data!!)} else {throw Exception("the result of remote's request is null")}} else {throw Exception(it.errorMsg)}}.onEach {AppUserUtil.onLogin(it.result)_viewEvents.send(LoginViewEvent.PopBack)}.catch {_viewEvents.send(LoginViewEvent.ErrorMessage(it.message ?: ""))}.collect()}}
  1. 一些页面,如果未登录,是不能使用的,这个时候我们可以取出isLogged 属性进行判断。

@ExperimentalFoundationApi
@Composable
fun CollectPage(navCtrl: NavHostController,scaffoldState: ScaffoldState,viewModel: CollectViewModel = hiltViewModel()
) {val viewStates = viewModel.viewStatesval collectPaging = viewStates.pagingData?.collectAsLazyPagingItems()val webUrls = viewStates.urlListval titles = viewStates.titlesval isRefreshing = viewStates.isRefreshingval listState =if ((collectPaging?.itemCount ?: 0) > 0) viewStates.listState else LazyListState()DisposableEffect(Unit) {Log.i("debug", "onStart")viewModel.dispatch(CollectViewAction.OnStart)onDispose {}}Column(modifier = Modifier.fillMaxSize().padding(bottom = BottomNavBarHeight)) {AppToolsBar(title = "我的收藏")if (!AppUserUtil.isLogged) {EmptyView(tips = "点击登录",imageVector = Icons.Default.Face) {RouteUtils.navTo(navCtrl, RouteName.LOGIN)}} else {collectPaging?.let {RefreshList(it, listState = listState, isRefreshing = isRefreshing, onRefresh = {viewModel.dispatch(CollectViewAction.Refresh)}) {if (!webUrls.isNullOrEmpty()) {stickyHeader {ListTitle(title = titles[1].text)}item {FlowRow(modifier = Modifier.padding(10.dp)) {webUrls?.forEachIndexed { index, website ->LabelTextButton(text = website.name ?: "标签",modifier = Modifier.padding(end = 10.dp, bottom = 10.dp),onClick = {RouteUtils.navTo(navCtrl,RouteName.WEB_VIEW,WebData(website.name, website.link!!))})}}}}stickyHeader {ListTitle(title = titles[0].text)}if (collectPaging.itemCount > 0) {items(collectPaging) { collectItem ->CollectListItemView(collectItem!!,onClick = {RouteUtils.navTo(navCtrl,RouteName.WEB_VIEW,WebData(collectItem.title, collectItem.link))})}}}}}}
}

参考资料:

  1. https://github.com/RicardoJiang/wanandroid-compose
http://www.dtcms.com/wzjs/415597.html

相关文章:

  • 重庆沙坪坝企业网站建设联系电话石家庄新闻
  • 动漫设计与游戏制作专业优化培训课程
  • 企业网站导航下拉菜单怎么做关键词排名查询工具有什么作用?
  • 青海中小企业网站建设企查查在线查询
  • thinkphp企业网站系统长沙百家号seo
  • 怎么建设菠菜网站网站如何做seo排名
  • 网站优化图片济南做网站公司哪家好
  • 淘宝做店招的网站专业做网站建设的公司
  • 网站加友情链接上海公布最新情况
  • 陕西省住房建设厅网站百度seo推广计划类型包括
  • 做新闻源网站采集站赚钱全国十大婚恋网站排名
  • 郑州市汉狮做网站免费模式营销案例
  • 福州做网站费用搜索引擎优化百度百科
  • 绍兴网站建设设计制作推广平台怎么做
  • 网站 字号 英文上海百度推广优化
  • 有什么网站可以做外贸出口信息实体店100个营销策略
  • 郑州网站开发比较好的网络公司阿里云官网首页
  • 国外开源 企业网站电子商务网站建设的步骤
  • 什么是网站开发网址检测
  • 买好域名后怎么做网站搜索引擎网站大全
  • 企业安全文化建设seo怎么优化排名
  • wordpress 备案信息修改东莞百度快速排名优化
  • 网站搜索怎么做的我想学做互联网怎么入手
  • wap网站源码2023年免费b站推广大全
  • 网站中的ppt链接怎么做的适合企业员工培训的课程
  • 重庆公司网站建设如何做网站seo
  • app 网站开发公司百度快照搜索
  • 51做网站广州网站不收录怎么解决
  • 河南网站建设问一问公司深圳网站seo地址
  • 做电影网站的流程重庆百度seo