uni-app iOS 一键登录 页面样式 Bug

uni-app iOS 一键登录 页面样式 Bug

示例代码:

closeIcon: {
path: '/static/img/analysis/close.png', // 自定义关闭按钮,仅支持本地图片。 HBuilderX3.3.7+版本支持
width: '20px', //图标宽度 默认值:60px
height: '20px' //图标高度 默认值:60px
},
authButton: {
normalColor: '#db6156', // 授权按钮正常状态背景颜色 默认值:#3479f5
highlightColor: '#db6156',
textColor: '#ffffff', // 授权按钮文字颜色 默认值:#ffffff
title: '本机号码一键登录', // 授权按钮文案 默认值:“本机号码一键登录”
borderRadius: '12px' // 授权按钮圆角 默认值:"24px" (按钮高度的一半)
},

操作步骤:

closeIcon: {
path: '/static/img/analysis/close.png', // 自定义关闭按钮,仅支持本地图片。 HBuilderX3.3.7+版本支持
width: '20px', //图标宽度 默认值:60px
height: '20px' //图标高度 默认值:60px
},
authButton: {
normalColor: '#db6156', // 授权按钮正常状态背景颜色 默认值:#3479f5
highlightColor: '#db6156',
textColor: '#ffffff', // 授权按钮文字颜色 默认值:#ffffff
title: '本机号码一键登录', // 授权按钮文案 默认值:“本机号码一键登录”
borderRadius: '12px' // 授权按钮圆角 默认值:"24px" (按钮高度的一半)
},

预期结果:

closeIcon 设置了宽高,可以生效。   authButton 下的 normalColor 已经设置了颜色 可以生效

实际结果:

authButton 下的 normalColor 已经设置了颜色,但是不生效  closeIcon也设置了大小,也不生效  在安卓是生效的,在iOS就不生效

bug描述:

iOS App 一键登录  authButton 下的 normalColor 已经设置了颜色,但是不生效.只有勾选了下面的协议,然后按键才会生效,  closeIcon也设置了大小,也不生效  在安卓是生效的,在iOS就不生效

图片

Image 1 Image 2

项目信息 描述
产品分类 uniapp/App
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 macOS 12.6.3
HBuilderX类型 正式
HBuilderX版本号 3.98
手机系统 iOS
手机系统版本号 iOS 16
手机厂商 苹果
手机机型 iphone13
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app iOS 一键登录 页面样式 Bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

closeIcon iOS目前不支持设置大小 后续会考虑跟安卓拉齐 不可点击的时候iOS按钮使用的是disabledColor 勾选后使用的normalColor 这一点可以看一下文档
https://uniapp.dcloud.net.cn/univerify.html#概述

更多关于uni-app iOS 一键登录 页面样式 Bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在使用 uni-app 开发 iOS 应用时,如果遇到一键登录页面样式问题,可能是由于以下原因导致的。以下是一些常见的排查和解决方法:


1. iOS 一键登录页面样式问题

  • 问题描述:iOS 一键登录页面(通常是 ASAuthorizationController 提供的原生页面)样式不符合预期,比如按钮位置、颜色、字体等。
  • 可能原因
    • iOS 系统对一键登录页面的样式有默认限制,开发者无法直接修改原生页面的样式。
    • uni-app 的样式未正确适配 iOS 系统。

2. 解决方案

  • 检查 uni-app 样式
    • 确保你的 uni-app 页面样式在 iOS 上正常显示,尤其是布局和字体大小。
    • 使用 rpxpx 单位时,确保在不同设备上适配良好。
  • 使用原生配置
    • iOS 一键登录页面的样式是由系统控制的,开发者无法直接修改。但可以通过以下方式间接调整:
      • ASAuthorizationController 的配置中,设置 preferredAuthorizationProviderpreferredAuthorizationButtonType 来调整按钮类型。
      • 通过 ASAuthorizationAppleIDButton 自定义按钮样式(仅限于按钮类型,如 .signIn.continue 等)。
  • 隐藏原生页面
    • 如果原生页面样式无法满足需求,可以考虑隐藏原生页面,使用自定义的 UI 界面,然后通过 uni.login 或其他方式实现一键登录功能。
  • 适配 iOS 系统版本
    • 不同 iOS 版本对一键登录页面的样式可能有差异,确保在目标 iOS 版本上测试。

3. 代码示例

  • 如果你使用的是 uni-app 的 uni.login 方法,可以参考以下代码:
    uni.login({
      provider: 'apple',
      success: function (res) {
        console.log('登录成功', res);
      },
      fail: function (err) {
        console.log('登录失败', err);
      }
    });
    
  • 如果你需要自定义 UI,可以隐藏原生页面,使用自定义按钮触发登录:
    <template>
      <view>
        <button @click="handleAppleLogin">Apple 登录</button>
      </view>
    </template>
    
    <script>
    export default {
      methods: {
        handleAppleLogin() {
          uni.login({
            provider: 'apple',
            success: function (res) {
              console.log('登录成功', res);
            },
            fail: function (err) {
              console.log('登录失败', err);
            }
          });
        }
      }
    }
    </script>
回到顶部