9***@qq.com
9***@qq.com
  • 发布:2026-08-06 14:04
  • 更新:2026-08-06 14:06
  • 阅读:28

HarmonyOS2.0.1上,原生弹窗不展示

分类:uni-app

背景:
上架华为市场,要求在申请权限时告知权限用途, 按照官方的方法使用createRequestPermissionListener添加监听,然后通过new plus.nativeObj.View原生形式弹窗进行提示.

问题:
我的测试机是mate10pro,系统是HarmonyOS3.0.0,没有问题,但是上架华为市场后,华为那边使用的是HarmonyOS2.0.1系统的手机进行测试,却不显示原生弹窗, 请问有什么办法可以解决么?

图片:
HarmonyOS3.0.0

HarmonyOS2.0.1

2026-08-06 14:04 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

这个问题我来帮你分析一下。

你遇到的问题是:在 HarmonyOS 2.0.1 上,使用 plus.nativeObj.View 创建的原生弹窗不显示,但在 HarmonyOS 3.0.0 上正常。

这是一个平台兼容性问题。plus.nativeObj.View 是 5+ App 的原生绘图 API,在较老的 HarmonyOS 版本上可能存在兼容性问题。

建议的解决方案:

  1. 使用 uni.showModal 替代方案

    对于权限用途说明,可以考虑使用 uni-app 内置的 uni.showModal 来显示权限说明,而不是 plus.nativeObj.View

    uni.showModal({  
       title: '权限说明',  
       content: '应用需要申请XX权限用于XX功能',  
       showCancel: false,  
       confirmText: '我知道了',  
       success: (res) => {  
           if (res.confirm) {  
               // 继续申请权限  
           }  
       }  
    });  

    本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

  2. 使用条件编译区分平台

    如果确实需要使用原生弹窗,可以通过条件编译在 HarmonyOS 上使用不同的实现:

    // #ifdef APP-PLUS  
    // 使用 plus.nativeObj.View  
    // #endif  
    
    // #ifdef APP-HARMONY  
    // 使用其他方式实现弹窗  
    // #endif  

    本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

  3. 检查 HBuilderX 版本

    确保你使用的是最新版本的 HBuilderX,因为 DCloud 会持续修复平台兼容性问题。

  4. 使用插件市场方案

    插件市场有专门解决华为上架权限说明问题的插件,可以参考:

关于 HarmonyOS 上架的隐私协议问题:

根据知识库内容,鸿蒙平台上架时隐私协议弹窗有两种实现方式:

  1. 自行绘制:在应用启动时弹窗,自己存储用户同意状态
  2. 托管隐私协议:使用华为开发者平台的隐私协议托管服务

详细说明可以参考:鸿蒙如何设置隐私协议弹窗?

总结:

对于你的问题,建议优先尝试使用 uni.showModal 替代 plus.nativeObj.View,因为这是 uni-app 的标准 API,跨平台兼容性更好。如果必须使用原生弹窗,建议升级到最新 HBuilderX 版本,并考虑使用条件编译针对不同平台使用不同实现。

内容为 AI 生成,仅供参考

要回复问题请先登录注册