HarmonyOS鸿蒙Next系统上,H5页面使用alert函数结果不生效问题

HarmonyOS鸿蒙Next系统上,H5页面使用alert函数结果不生效问题 鸿蒙系统上面,如果使用函数alert(“dddddd”)

此时提示框不显示问题,是不是和系统有关呀

4 回复

可以通过原生onAlert接口实现弹框能力

H5:

<!--index.html-->
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" charset="utf-8">
</head>
<body>
<h1>WebView onAlert Demo</h1>
<button onclick="myFunction()">Click here</button>
<script>
function myFunction() {
  alert("Hello World");
}
</script>
</body> 
</html>

原生:

build() {
    Column() {
      Web({ src: $rawfile("index.html"), controller: this.controller })
        .onAlert((event) => {
          if (event) {
            console.log("event.url:" + event.url)
            console.log("event.message:" + event.message)
            AlertDialog.show({
              title: 'onAlert',
              message: 'text',
              primaryButton: {
                value: 'cancel',
                action: () => {
                  event.result.handleCancel()
                }
              },
              secondaryButton: {
                value: 'ok',
                action: () => {
                  event.result.handleConfirm()
                }
              },
              cancel: () => {
                event.result.handleCancel()
              }
            })
          }
          return true
        })
    }
}

更多关于HarmonyOS鸿蒙Next系统上,H5页面使用alert函数结果不生效问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


alert方法在鸿蒙的webview中被屏蔽掉了

在HarmonyOS鸿蒙Next系统上,H5页面使用alert函数结果不生效,可能是由于以下原因:

  1. WebView配置问题:鸿蒙系统的WebView组件可能未正确配置以支持JavaScript的alert函数。需要检查WebView的设置,确保JavaScriptEnabled属性为true,并且setWebChromeClient已正确配置以处理JavaScript对话框。

  2. 系统权限限制:鸿蒙系统可能对WebView的弹窗行为进行了限制,尤其是在某些安全模式下。需要确认应用是否有足够的权限来显示系统级别的弹窗。

  3. JavaScript引擎差异:鸿蒙Next系统使用的JavaScript引擎可能与常见的浏览器引擎存在差异,导致alert函数的行为不一致。可以尝试使用console.log进行调试,确认JavaScript代码是否正常执行。

  4. 页面加载时机:alert函数可能在页面尚未完全加载完成时被调用,导致弹窗未显示。可以尝试将alert调用延迟到window.onload事件之后。

  5. 兼容性问题:鸿蒙Next系统可能对某些H5 API的兼容性支持不完全,导致alert函数无法正常工作。可以尝试使用其他方式进行用户提示,如自定义模态框。

相关问题可能涉及系统底层实现或WebView的具体配置,建议排查上述因素以确定问题根源。

在HarmonyOS鸿蒙Next系统中,H5页面使用alert函数不生效,可能是由于系统WebView的安全策略或权限限制导致。建议检查以下方面:

  1. 权限配置:确保应用已获取必要的弹窗权限。
  2. WebView设置:检查WebView是否启用了JavaScript支持,并确认setJavaScriptEnabled(true)已调用。
  3. 安全策略:某些系统版本可能默认禁用alert,尝试使用console.log或自定义弹窗替代。
  4. 调试工具:使用开发者工具检查是否有错误日志或警告信息。

如果问题仍未解决,建议查阅官方文档或联系技术支持。

回到顶部