uni-app 一键登录IPhone异常

uni-app 一键登录IPhone异常

示例代码:

export const agreementOptions = [  
  {  
    id: 1,  
    label: '用户协议',  
    value: 'https://www.baidu.com',  
  },  
  {  
    id: 2,  
    label: '隐私协议',  
    value: 'https://www.baidu.com',  
  },  
]  

export const styleOptions = {  
  fullScreen: true, // 是否全屏显示,默认值: false  
  backgroundColor: '#01542A', // 授权页面背景颜色,默认值:#ffffff  
  backgroundImage: 'static/images/bg_login.png', // 全屏显示的背景图片,默认值:"" (仅支持本地图片,只有全屏显示时支持)  
  icon: {  
    path: 'static/icon/icon_logo_login.png', // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo  
    width: '80px', // 图标宽度 默认值:60px  
    height: '70px', // 图标高度 默认值:60px  
  },  
  closeIcon: {  
    path: 'static/icon/icon_close_white.png', // 自定义显示在授权框中的logo,仅支持本地图片  
    width: '20px', // 图标宽度 默认值:60px (HBuilderX 4.0+ 仅iOS支持)  
    height: '20px', // 图标高度 默认值:60px (HBuilderX 4.0+ 仅iOS支持)  
  },  
  phoneNum: {  
    color: '#FFFFFF', // 手机号文字颜色 默认值:#202020  
  },  
  slogan: {  
    color: '#80FFFFFF', //  slogan 字体颜色 默认值:#BBBBBB  
  },  
  authButton: {  
    normalColor: '#2D9852', // 授权按钮正常状态背景颜色 默认值:#3479f5  
    highlightColor: '#2D9852', // 授权按钮按下状态背景颜色 默认值:#2861c5(仅ios支持)  
    disabledColor: '#2D9852', // 授权按钮不可点击时背景颜色 默认值:#73aaf5(仅ios支持)  
    textColor: '#ffffff', // 授权按钮文字颜色 默认值:#ffffff  
    title: '本机号码一键登录', // 授权按钮文案 默认值:“本机号码一键登录”  
    borderRadius: '24px', // 授权按钮圆角 默认值:"24px" (按钮高度的一半)  
  },  
  otherLoginButton: {  
    visible: true, // 是否显示其他登录按钮,默认值:true  
    normalColor: '', // 其他登录按钮正常状态背景颜色 默认值:透明  
    highlightColor: '', // 其他登录按钮按下状态背景颜色 默认值:透明  
    textColor: '#80FFFFFF', // 其他登录按钮文字颜色 默认值:#656565  
    title: '验证码登录', // 其他登录方式按钮文字 默认值:“其他登录方式”  
    borderColor: '', // 边框颜色 默认值:透明(仅iOS支持)  
    borderRadius: '0px', // 其他登录按钮圆角 默认值:"24px" (按钮高度的一半)  
  },  
  privacyTerms: {  
    defaultCheckBoxState: false, // 条款勾选框初始状态 默认值: true  
    isCenterHint: false, // 未勾选服务条款时点击登录按钮的提示是否居中显示 默认值: false (3.7.13+ 版本支持)  
    uncheckedImage: '', // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)  
    checkedImage: '', // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)  
    checkBoxSize: 12, // 可选 条款勾选框大小  
    textColor: '#BBBBBB', // 文字颜色 默认值:#BBBBBB  
    termsColor: '#2D9852', //  协议文字颜色 默认值: #5496E3  
    prefix: '我已阅读并同意', // 条款前的文案 默认值:“我已阅读并同意”  
    suffix: '并使用本机号码登录', // 条款后的文案 默认值:“并使用本机号码登录”  
    privacyItems, // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效  
  },  
  // buttons: { // 自定义页面下方按钮仅全屏模式生效(3.1.14+ 版本支持)  
  //   iconWidth: '50px', // 图标宽度(高度等比例缩放) 默认值:45px  
  //   list: [  
  //     {  
  //       provider: 'weixin',  
  //       iconPath: 'static/icon/icon_wx_login.png', // 图标路径仅支持本地图片  
  //     },  
  //   ],  
  // },  
}

操作步骤:

  • 正常进入登录 拉起一键登录

预期结果:

  1. 隐私协议高亮 点击跳转
  2. IOS系统未勾选隐私协议 点击一键登录弹出toast提示

实际结果:

  • 见上述BUG描述


更多关于uni-app 一键登录IPhone异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

需要补充平台分类(安卓/ios/鸿蒙/小程序)和具体的报错信息。 该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

该bug反馈内容较为完整,描述了iOS 26系统下一键登录的两个具体问题:隐私协议样式异常(未高亮不可点击)和未勾选协议时无提示。代码示例清晰展示了配置项,复现步骤明确,分类信息齐全(含HBuilderX 4.87、iOS 26等关键版本信息)。
经核查知识库,问题成立:

隐私协议样式问题:iOS平台对privacyTerms.termsColor的渲染存在兼容性问题,univerify文档指出协议文字默认色#5496E3为可点击状态,但iOS 26下自定义颜色可能导致交互失效。
无提示问题:iOS系统未触发协议校验逻辑,与云打包IOS26兼容性问题类似,新系统API适配不完善导致getCheckBoxState失效。

建议解决方案:

升级HBuilderX至最新正式版(当前4.87已是最新,但需确认是否有热修复补丁)
尝试移除privacyTerms中的自定义颜色配置,恢复默认值观察效果
使用uni.getUniverifyManager().getCheckBoxState()替代直接API调用(参考文档)
若仍无法解决,需等待DCloud更新iOS SDK适配(可关注issue系统反馈)

更多关于uni-app 一键登录IPhone异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


根据你提供的代码和截图,uni-app一键登录在iPhone上出现异常的主要问题是隐私协议配置问题。

从截图看,隐私协议区域显示为空白,这是因为你的代码中privacyItems参数引用了未定义的变量。在styleOptions.privacyTerms配置中,你直接使用了privacyItems,但这个变量在当前代码中并未定义。

需要将privacyItems替换为实际的协议配置数组。修改示例如下:

// 定义隐私协议项
const privacyItems = [
  {
    title: '用户协议',
    url: 'https://www.baidu.com'
  },
  {
    title: '隐私协议', 
    url: 'https://www.baidu.com'
  }
]

export const styleOptions = {
  // ... 其他配置保持不变
  privacyTerms: {
    // ... 其他隐私条款配置
    privacyItems, // 这里引用上面定义的privacyItems
  },
}
回到顶部