WebView中操作视频播放,暂停

1. WebView 的基本概念

WebView 是一个基于 Chromium 的视图组件,它可以显示网页内容(HTML、CSS、JavaScript 等),允许用户在 Android 应用中直接交互。开发者可以通过 WebView 加载网页,执行 JavaScript,并处理网页中的多种事件。

2. 主要特点

  • 嵌入式浏览器: 可以将完整的 HTML 5 浏览器功能嵌入到应用中。
  • 支持多媒体: 可以播放音频和视频,并显示各种媒体类型。
  • JavaScript 支持: 可以执行 JavaScript,并与网页进行交互。
  • 离线支持: 可以缓存网页内容,以支持离线浏览。
  • 自定义浏览体验: 开发者可以完全控制网页的加载、导航和交互行为。

3.WebView的使用

使用很简单,不在此赘述

4.对视频基本操作

播放,暂停,静音等通用操作很简单直接贴代码

4.1播放:

java 复制代码
mWebView.evaluateJavascript("document.querySelector('video').play();", null);

4.2暂停:

java 复制代码
mWebView.evaluateJavascript("document.querySelector('video').pause();", null);

4.3静音:

java 复制代码
mWebView.evaluateJavascript("document.querySelector('video').muted="true";", null);

4.4音量控制

java 复制代码
mWebView.evaluateJavascript("document.querySelector('video').volume="0.7";", null);

5.特定元素操作

比如视频中返回按键的监听,这个就需要获取到元素的选择器名称。

1.获取元素选择器名称

选择器解释

  • 点(. : 在 CSS 选择器中,点 . 用来选择带有指定类的元素。例如:

    • .back-icon:选择所有具有 class="back-icon" 的元素。
  • ID选择器 : 如果您要选择一个 ID,以 # 开头。例如:

    • #myElement 选择具有 id="myElement" 的元素。
  • 元素选择器 : 直接使用元素的名称(如 div, span, p 等)用于选择该类型的元素。例如:

    • div:选择所有 <div> 元素。

这里以Microsoft Edge浏览器为例,其他浏览器没什么差别

右键单击按钮,选择"检查"(Inspect),或使用快捷键 Ctrl + Shift + I(Windows)或 Cmd + Option + I(Mac)进入开发者工具界面,用元素选择器选中需要控制的元素,在元素栏中可以看到对应元素的class name。有了classname就可以对元素进行监听

2.监听元素点击事件

java 复制代码
// 添加 JavaScript 接口
            mWebView.addJavascriptInterface(new WebAppInterface(), "AndroidFunction");

            // 注入 JavaScript 代码以监听点击事件
            mWebView.setWebViewClient(new WebViewClient() {
                @Override
                public void onPageFinished(WebView view, String url) {
                    view.evaluateJavascript(
                            "(function() { " +
                                    "  var backIcon = document.querySelector('.back-icon');" +
                                    "  if (backIcon) {" +
                                    "      backIcon.addEventListener('click', function(event) {" +
                                    "          AndroidFunction.onBackIconClicked(); " +
                                    "      });" +
                                    "  }" +
                                    "})()", null);
                }
            });


 // 创建 JS 接口
    public class WebAppInterface {
        @JavascriptInterface
        public void onBackIconClicked() {
            Log.i(TAG, "onBackIconClicked: ");
            activity.finish();

        }
    }
  1. 添加 JavaScript 接口:

    • 添加了一个 Java 接口 WebAppInterface,用作 JavaScript 与 Android 代码之间的桥梁。使用 @JavascriptInterface 注解标记的方法可以从 JavaScript 中调用。
  2. 动注入 JavaScript:

    • onPageFinished方法中,注入了 JavaScript,用于将点击事件监听器添加到 .back-icon 元素。
    • 当用户点击该元素时,调用 Android 接口 onBackIconClicked()
  3. 处理点击事件:

    • 在 Java 接口的 onBackIconClicked() 方法中,您可以添加任何需要的逻辑,这里直接关闭当前activity。
相关推荐
2501_916007478 小时前
HTTPS 抓包乱码怎么办?原因剖析、排查步骤与实战工具对策(HTTPS 抓包乱码、gzipbrotli、TLS 解密、iOS 抓包)
android·ios·小程序·https·uni-app·iphone·webview
卷Java21 小时前
WXML 编译错误修复总结
xml·java·前端·微信小程序·uni-app·webview
2501_915106321 天前
上架 App 全流程解析,iOS 应用上架步骤、App Store 审核流程、ipa 文件上传与测试分发经验
android·ios·小程序·https·uni-app·iphone·webview
2501_916013741 天前
苹果应用上架全流程指南 iOS 应用发布步骤、App Store 审核流程、ipa 文件上传与 uni-app 打包实战经验
android·ios·小程序·uni-app·cocoa·iphone·webview
2501_915909062 天前
iOS 26 耗电检测实战攻略,如何测电量掉速、定位高耗能模块与优化策略(适用于 uni-app 原生 App)
android·ios·小程序·uni-app·cocoa·iphone·webview
2501_915921432 天前
iOS 26 性能测试实战,如何评估启动速度、CPUGPU 负载、帧率与系统资源适配(uni-app 与 iOS 原生应用性能方案)
android·ios·小程序·uni-app·cocoa·iphone·webview
2501_915918412 天前
Charles与Postman、JMeter结合使用教程:高效接口调试与性能测试方案
测试工具·jmeter·ios·小程序·uni-app·postman·webview
2501_915921432 天前
iOS App 混淆与热更新兼容实战 混淆后如何安全可靠地推送热修复(Hotfix)与灰度回滚
android·ios·小程序·https·uni-app·iphone·webview
2501_915918412 天前
iOS 26 软件兼容性大检查,哪些 App 出问题、API 变动要注意、旧功能不支持兼容性测试全流程
android·ios·小程序·https·uni-app·iphone·webview
2501_915909062 天前
iOS 26 系统流畅度深度评测 Liquid Glass 动画滑动卡顿、响应延迟、机型差异与 uni-app 优化策略
android·ios·小程序·uni-app·cocoa·iphone·webview