uni-app 一键登录自定义checkbox有问题,安卓和iOS表现不一致

uni-app 一键登录自定义checkbox有问题,安卓和iOS表现不一致

测试过的手机

iphoneX,小米10

示例代码:

"privacyTerms": {
    "checkBoxSize":"16px",
    "defaultCheckBoxState": "false", // 条款勾选框初始状态 默认值: true
    "uncheckedImage":"/static/uncheckedImage.png", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)
    "checkedImage":"/static/checkedImage.png", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)
    // "textColor": "#8a8b90", // 文字颜色 默认值:#8a8b90
    "termsColor": "#D2A878", //  协议文字颜色 默认值: #1d4788
    "prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
    "suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
    "fontSize": 12, // 隐私协议文字大小 (仅android 支持)  
}

操作步骤:

  • privacyTerms下给uncheckedImage和checkedImage设置图片

预期结果:

  • 未选中显示未选中的图片,选中显示选中的图片

实际结果:

  • iOS和安卓反了,安卓默认不选中的情况,显示的是checkedImage

bug描述:

“uncheckedImage”:"/static/uncheckedImage.png", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持) “checkedImage”:"/static/checkedImage.png", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)

uncheckedImage在iOS上表现正常,就是未被选中状态,在安卓上却是表示选中状态
checkedImage在iOS上表现正常,就是被选中状态,在安卓上却是表示未选中状态

总之iOS和安卓反了。。。。
还有checkBoxSize设置大小,安卓有效,iOS无效,iOS的也太小了,能不能也一起兼容了?

示例图片


更多关于uni-app 一键登录自定义checkbox有问题,安卓和iOS表现不一致的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

你一键登入打包后能正常允许吗?

更多关于uni-app 一键登录自定义checkbox有问题,安卓和iOS表现不一致的实战教程也可以访问 https://www.itying.com/category-93-b0.html


运行

用3.2.2 alpha 版本 bug已修复

这个问题3.3.11又出现了

回复 大凤: 今天会发版本修复这个问题

回复 DCloud_Android_DQQ: 用最新版的,ios还是改不了

这是一个已知的跨平台兼容性问题。在uni-app一键登录的隐私条款配置中,uncheckedImagecheckedImage参数在iOS和Android平台上的行为确实不一致。

问题分析:

  1. 图片状态反转问题:Android平台将uncheckedImage误用为选中状态图片,checkedImage误用为未选中状态图片,与iOS平台行为相反。
  2. 复选框尺寸问题checkBoxSize参数在Android平台有效,但在iOS平台无效,导致iOS端复选框显示过小。

临时解决方案: 由于这是框架层面的平台差异,建议采用条件编译处理:

"privacyTerms": {
    // 公共配置
    "defaultCheckBoxState": false,
    "prefix": "我已阅读并同意",
    "suffix": "并使用本机号码登录",
    "termsColor": "#D2A878",
    
    // 平台特定配置
    #ifdef APP-PLUS
    "checkBoxSize": "16px",
    #endif
    
    #ifdef APP-ANDROID
    // Android平台需要交换图片定义
    "uncheckedImage": "/static/checkedImage.png",
    "checkedImage": "/static/uncheckedImage.png",
    #endif
    
    #ifdef APP-IOS
    // iOS平台使用正常定义
    "uncheckedImage": "/static/uncheckedImage.png",
    "checkedImage": "/static/checkedImage.png",
    #endif
}
回到顶部