HarmonyOS 鸿蒙Next Web组件加载视频时无法隐藏下载按钮怎么处理
HarmonyOS 鸿蒙Next Web组件加载视频时无法隐藏下载按钮怎么处理
 
【问题现象】
正常情况下Web组件通过url加载视频时,默认会提供一个下载按钮:

如上图所示。但是有些场景下,开发者并不希望视频被下载,因此想要隐藏下载按钮。
【背景知识】
HTML5的video标签提有一个属性是 controlsList,这个属性提供了对video额外的控制,使开发者能够控制显示哪些video元素控件。
controlsList属性接受一个空格分隔的字符串,每个字符串代表一个控件的名称。主要可以控制的选项包括:
- nodownload:隐藏下载按钮。
 - nofullscreen:隐藏全屏按钮。
 - noremoteplayback:隐藏远程播放按钮。
 
【解决方案】
Web组件没有直接的属性来控制下载按键的隐藏,但是可以通过JS脚本来间接实现。具体方法如下:
(1)首先确认Web组件运行执行JavaScript脚本。(正常情况下默认是允许执行的,可以确认一下是否有更改设置)。
代码示例如下:
Web({
    src: ‘url’,
    controller: this.webController
   })
    .javaScriptAccess(true)
 
(2)在Web组件加载完成后,执行JS脚本,隐藏下载按键。JS脚本的实现原理如下:
- 通过document.querySelector()获取video对象;
 - 设置controlsList属性值为nodownload。
 
代码示例如下:
Web({
      src: this.videoUrl,
      controller: this.webController
    })
      .javaScriptAccess(true)
      .onPageEnd(() => {
        this.webController.runJavaScript(' window.onload = function() {\n' +
          ' var video = document.querySelector(\'video[name="media"]\');\n' +
          ' if (video) {\n' +
          ' video.setAttribute(\'controlsList\', \'nodownload\');\n' +
          ' }\n' +
          ' };')
      })
 
最终效果:

更多关于HarmonyOS 鸿蒙Next Web组件加载视频时无法隐藏下载按钮怎么处理的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next Web组件加载视频时无法隐藏下载按钮怎么处理的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对HarmonyOS 鸿蒙Next Web组件加载视频时无法隐藏下载按钮的问题,这里提供一些可能的解决方案:
- CSS样式控制:尽管标准的
<video>标签不直接支持隐藏下载按钮,但可以尝试通过CSS覆盖默认样式来隐藏按钮。检查是否有特定的CSS伪类或属性可以控制这些按钮的显示。 - JavaScript控制:使用JavaScript监听
<video>元素的事件,尝试在按钮出现时隐藏它们或禁用其功能。不过,由于这是系统级的行为,可能受限于浏览器的安全策略,因此不一定能成功。 - 检查Web组件配置:确认Web组件的配置是否正确,有时下载按钮的显示可能与Web组件的某些设置有关。
 - 使用第三方库:考虑使用如Video.js等第三方视频播放器库,这些库通常提供更丰富的自定义选项,可能允许隐藏下载按钮。
 
如果尝试了上述方法仍无法解决问题,可能是由于HarmonyOS的特定行为或限制导致的。此时,建议直接参考HarmonyOS的官方文档或更新,以获取最新的解决方案或信息。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。
        
      
                  
                  
                  
