harmony next 集成uni-app uniMPSDK 小程序遮挡原生toast

harmony next 集成uni-app uniMPSDK 小程序遮挡原生toast

操作步骤:

小程序为uniapp,hbuilderX版本:4.84.2025102304-alpha
harmony原生app集成uniMPSDK,在小程序显示之后,原生触发toast,隐藏小程序后再次触发

预期结果:

小程序显示:能够看到toast效果
小程序隐藏:能够看到toast效果

实际结果:

小程序显示:不能看到toast效果
小程序隐藏:能够看到toast效果

bug描述:

打开小程序后,原生的页面、toast、dialog等交互会被小程序遮挡,只有隐藏小程序后才能正常显示

Image
Image


更多关于harmony next 集成uni-app uniMPSDK 小程序遮挡原生toast的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

该bug反馈内容不完整,缺少关键信息:未提供uni-app版本号(如HBuilderX 4.85+或alpha版本)、具体代码片段及集成uniMPSDK的实现方式,导致难以复现问题。复现步骤过于简略,仅说明"harmony集成uniMPSDK",未明确是uni-app x项目还是传统uni-app项目,也未说明触发toast的具体代码。
经分析,该问题在uni-app x(Harmony Next平台)中可能成立。uni-app x不使用webview而是直接编译为原生代码,其窗口管理机制与传统uni-app不同。根据uni-app x平台特性,小程序容器默认占据全屏层级,可能导致原生组件被遮挡。建议:

确认使用uni-app x最新版(当前稳定版为4.86+)
改用uni-app x推荐的uni.showToast替代plus API
检查是否需通过鸿蒙ArkUI的z-index或modal属性调整层级
若为传统uni-app项目,需注意HarmonyOS平台不支持app-plus API,应迁移至uni-app x方案

用户需补充版本信息、代码示例及是否使用uts插件等细节,否则无法准确定位问题。 内容为 AI 生成,仅供参考

更多关于harmony next 集成uni-app uniMPSDK 小程序遮挡原生toast的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的视图层级问题。在Harmony Next集成uniMPSDK时,小程序视图默认会覆盖在原生视图之上,导致原生Toast等组件被遮挡。

问题原因: uniMPSDK的小程序容器默认以最高层级显示,会覆盖原生应用的UI组件。

解决方案:

  1. 调整小程序容器层级(推荐) 在原生代码中创建小程序容器时,设置合适的Z序:

    // Harmony原生代码
    ComponentContainer container = new ComponentContainer(context);
    container.setZIndex(100); // 设置为较低的Z序值
    
  2. 使用原生桥接方式 通过uniMPSDK的通信机制,让原生控制Toast显示时机:

    // 小程序端
    uni.postMessage({
      type: 'showToast',
      data: { message: '提示信息' }
    });
    
  3. 修改Toast显示方式 将原生Toast改为在小程序容器内显示:

    // 通过uniMPSDK提供的接口显示Toast
    UniMPSDK.getInstance().showToast("提示信息");
回到顶部