登录页客制化

1.0 需求分析

1.1 介绍

当前登录页的客制化需求还是比较多的,当前想将登录功能进行改造,让其适合大部分客制化需求。

  1. 自定义:对外提供登录管理接口,让客户自己定义登录页,然后调用凌云提供的登录方法进行登录。
  2. 构造布局:对外提供修改布局的方法,让客户根据提供的构造布局类,进行布局界面。
  3. 替换布局:对外提供当前布局的xml文件,让用户自己修改元素位置。
  4. 多套布局:提供多套登录布局,打包的时候动态替换。

1.2 优劣对比

1.2.1 自定义

对外提供:账号密码登录、验证码登录、第三方登录方法。

  1. 优势:用户可以随意修改,只需要在登录时调用对用登录方法就行了。

  2. 劣势:需要用户自己开发登录页,操作相对复杂。

1.2.2 构造布局

对外提供:修改布局的构造类,提供如应用图标、标题、登录按钮、第三方按钮的位置、大小、颜色等变量。

  1. 优势:用户可以在打开登录页的时候,对登录页进行动态编辑,安卓和ios可以提供相同的修改方式。

  2. 劣势:界面比较死板,改动不可能太大。

1.2.3 替换布局

对外提供:提供当前登录页的xml布局,让用户可以随意修改布局。

  1. 优势:相比较来说更加方便,可以随意修改布局中元素的位置和样式。

  2. 劣势:需要有一定的开发布局经验,客制化开发难度相对其它几个会大一些。

1.2.4 多套布局

对外提供:提供多套登录页面的布局,如:企业云工作台、园圈、凌云、政务。

  1. 优势:客制化难度最低,开发人员只需要填写使用哪个界面即可,无需二次开发。

  2. 劣势:界面比较死板,只能使用凌云提供的登录页,无法满足所有需求。

1.3 推荐方案

使用构造布局进行改造

使用方式:

  1. 登录接口还是要暴露出去,满足部分已经存在登录界面的需求;
  2. 使用构造模式,对布局、文字样式等进行一系列的封装;
  3. 在资源文件中定义修改登录页的json资源文件;
  4. 在启动页对json文件进行解析,然后设置到登录页的构造器中,对登录页进行动态调整。

优点:可以直接在资源文件中对登录有进行统一的调整,后面可以在资源管理工具中进行维护。

需求实现

1.0 简介

样式关系图

2.0 ViewStyle

属性 类型 参数 描述
background String 默认空 背景颜色
round String 默认空 圆角
margin String 默认空 外边距
padding String 默认空 内边距
center String 默认空,0:居中;1:横向居中;2:垂直居中 居中类型
height String 默认空 高度
width String 默认空 宽度
isShow String 0:显示;1:隐藏;2:占位隐藏 是否显示
event EventStyle 默认空 点击事件

3.0 EventStyle

属性 类型 参数 描述
itemCode String 默认空 点击类型
url String 默认空 H5地址
appId String 默认空 小程序ID
//itemCode
 const val sms = 101  //短信登录
 const val pwd = 102  //密码登录
 const val alipay = 103 //支付宝登录
 const val wechat = 104 //微信登录
 const val agreement = 105 //授权信息
 const val text = 106 //测试地址设置

4.0 ImageStyle

属性 类型 参数 描述
icon String 默认空 默认图标
selectIcon String 默认空 选中图标
isSelected boolean false 是否选中
scale String 默认:0;0:拉伸撑满;非零:切图居中撑满 图片显示样式

5.0 ButtonStyle

属性 类型 参数 描述
textStyle TextStyle 默认空 按钮字体样式
selectBackground String 默认空 按钮选中背景

6.0 TextStyle

属性 类型 参数 描述
text String 默认空 文本
color String 默认空 字体颜色
selectColor String 默认空 选中字体颜色
size String 默认空 字体大小
body String 1:加粗;非1不加粗 是否加粗
rows String 默认显示一行 文本行数
lineSpacing String 默认标准间隔 字体行距
deleteLine String 1:显示删除线;非1不显示 删除线
文档更新时间: 2022-02-08 18:00   作者:陈冕