3***@qq.com
3***@qq.com
  • 发布:2026-03-20 11:55
  • 更新:2026-03-20 11:57
  • 阅读:8

【报Bug】uni.createIntersectionObserver 回调在 app 环境不执行

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 15.6.1

HBuilderX类型: 正式

HBuilderX版本号: 4.85

手机系统: iOS

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: iPhone 14 plus

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:
<template>  
    <view class="container">  
        <text>{{appear ? '小球出现' : '小球消失'}}</text>  
        <view class="page-section">  
            <scroll-view class="scroll-view" scroll-y>  
                <view class="scroll-area">  
                    <text class="notice">向下滚动让小球出现</text>  
                    <view class="ball"></view>  
                </view>  
            </scroll-view>  
        </view>  
    </view>  
</template>  
<script>  
    let observer = null;  
    export default {  
        data() {  
            return {  
                appear: false  
            }  
        },  
        onReady() {  
            observer = uni.createIntersectionObserver(this);  
            observer.relativeTo('.scroll-view').observe('.ball', (res) => {  
              if (res.intersectionRatio > 0 && !this.appear) {  
                this.appear = true;  
              } else if (!res.intersectionRatio > 0 && this.appear) {  
                this.appear = false;  
              }  
            })  
        },  
        onUnload() {  
            if (observer) {  
                observer.disconnect()  
            }  
        }  
    }  
</script>  
<style>  
    view,page {  
        display: flex;  
        flex-direction: column;  
    }  

    .scroll-view {  
        height: 400rpx;  
        background: #fff;  
        border: 1px solid #ccc;  
        box-sizing: border-box;  
    }  

    .scroll-area {  
        height: 1300rpx;  
        display: flex;  
        flex-direction: column;  
        align-items: center;  
        transition: .5s;  
    }  

    .notice {  
        margin-top: 150rpx;  
        margin: 150rpx 0 400rpx 0;  
    }  

    .ball {  
        width: 200rpx;  
        height: 200rpx;  
        background: #1AAD19;  
        border-radius: 50%;  
    }  
</style>

手机真机调试这个页面,向下滚动时不会出现小球出现的文案

预期结果:

向下滚动到小球出现时,显示 小球出现

实际结果:

向下滚动到小球出现时,仍旧显示 小球消失

bug描述:

uni.createIntersectionObserver 回调在 iOS 和 Android 中都不执行,用的是官方提供的示例

2026-03-20 11:55 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

这是一个非常高质量的 bug 反馈,内容完整且专业,具备直接复现的条件。

反馈质量评价:

  • 完整性:优秀。包含了 BUG 标题、详细描述、可直接运行的完整代码示例(与官方文档示例一致)、清晰的复现步骤、明确的预期与实际结果,以及完整的分类信息(HBuilderX 4.85、iOS 26、Vue3 等)。
  • 代码示例:提供了完整的、可直接运行的单文件代码,无需官方人员调整即可复现问题。
  • 复现步骤:结合代码描述清晰,官方人员可根据步骤直接验证。

知识库检索结果:

抱歉,我在知识库中未找到关于 uni.createIntersectionObserver 在 App 端(iOS/Android)回调不执行的相关问题记录或解决方案。知识库中仅包含该 API 的代码示例,与您的示例一致。

建议与下一步:

由于知识库暂无相关记录,建议您:

  1. 确认页面类型:请确认当前页面是 .vue 页面还是 .nvue 页面。如果是 .nvue 页面,建议改为 .vue 页面测试(nvue 已停止维护,部分 API 表现可能存在差异)。
  2. 升级 HBuilderX:您当前使用的是 4.85 版本,建议升级到最新正式版(5.04)或 Alpha 版(5.03)后重试。
  3. 提交官方 Issue:若升级后问题依旧,建议将此高质量反馈提交至 DCloud 官方 Issue 系统,以便开发团队跟进修复。

目前无法从知识库中确认该 Bug 是否成立,需要开发团队进一步验证 App 端引擎对该 API 的实现情况。

内容为 AI 生成,仅供参考

要回复问题请先登录注册