牙叔教程 简单易懂
修改96行的url为视频播放链接即可.
原理:
获取网页源代码里的第一张图片, 后缀为jpg或者png, 我测了五六个视频是可以的
"ui"; /* * @version: 1.0 * @Date: 2021-12-12 22:45:09 * @LastEditTime: 2022-02-14 21:59:22 * @LastEditors: 牙叔 * @Description: * @FilePath: \autojs-test\main.js * @名人名言: 牙叔教程 简单易懂 * @bilibili: 牙叔教程 * @公众号: 牙叔教程 * @QQ群: 747748653 */ engines.all().map((ScriptEngine) => { if (engines.myEngine().toString() !== ScriptEngine.toString()) { ScriptEngine.forceStop(); } }); importClass(android.webkit.WebSettings); ui.layout( <vertical id="main" padding="10 10 10 30" bg="#ff1e90ff"> <scroll> <webview id="webView" /> </scroll> </vertical> ); var webView = ui.webView; /* -------------------------------settings------------------------------------------- */ var settings = webView.getSettings(); // 手机头 settings.setUserAgentString("JUC (Linux; U; 2.3.7; zh-cn; MB200; 320*480) UCWEB7.9.3.103/139/999"); // printObj(settings) settings.setLoadsImagesAutomatically(true); // 是否自动加载图片 settings.setDefaultTextEncodingName("UTF-8"); // 设置默认的文本编码 UTF-8 GBK settings.setJavaScriptEnabled(true); // 设置是否支持js settings.setJavaScriptCanOpenWindowsAutomatically(true); // 设置是否允许js自动打开新窗口, window.open settings.setSupportZoom(true); // 是否支持页面缩放 settings.setBuiltInZoomControls(true); // 是否出现缩放工具 settings.setUseWideViewPort(true); // 容器超过页面大小时, 是否将页面放大到塞满容器宽度的尺寸 settings.setLoadWithOverviewMode(true); // 页面超过容器大小时, 是否将页面缩小到容器能够装下的尺寸 settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING); // 设置自适应屏幕的算法 settings.setAppCacheEnabled(false); // 是否启用app缓存 settings.setAppCachePath("/sdcard/aaa"); // app缓存文件路径 settings.setAllowFileAccess(true); // 是否允许访问文件 settings.setDatabaseEnabled(true); // 是否启用数据库 settings.setDomStorageEnabled(true); // 是否本地存储 /* -------------------------WebViewClient------------------------------------------------- */ let debounceDownVideoCover = debounce(downVideoCover); var WebViewClient = android.webkit.WebViewClient; var webViewClient = new JavaAdapter(WebViewClient, { onPageFinished: function (view, url) { console.log("onPageFinished"); debounceDownVideoCover(); }, }); webView.setWebViewClient(webViewClient); /* -------------------------------------------------------------------------- */ function 网页中获取网页源代码() { return document.getElementsByTagName("html")[0].outerHTML; } /* -------------------------------------------------------------------------- */ function downVideoCover() { webView.evaluateJavascript(";" + 网页中获取网页源代码.toString() + ";网页中获取网页源代码();", function (s) { try { let imgUrl = s.match(/http[:/.\w]+?\.(jpg|png)/)[0]; log("imgUrl = " + imgUrl); http.get(imgUrl, {}, function (res, err) { if (err) { toastLog(err); return; } let filePath = files.join(files.getSdcardPath(), "a封面.png"); files.writeBytes(filePath, res.body.bytes()); app.viewFile(filePath); }); } catch (error) { toastLog(error); } }); } function debounce(fn, delay) { let timer; delay = delay || 500; return function () { if (timer) { clearTimeout(timer); } const args = arguments; timer = setTimeout(() => { fn.apply(this, args); // 改变this指向为调用debounce所指的对象 }, delay); }; } /* -------------------------------------------------------------------------- */ let url = "https://www.bilibili.com/video/BV1Ja411q7SB?spm_id_from=333.999.0.0"; webView.loadUrl(url);
环境
手机: Mi 11 Pro
Android版本: 12
Autojs版本: 9.1.6
相关教程
https://www.yuque.com/yashujs/bfug6u/mev4w7
https://www.yuque.com/yashujs/bfug6u/xuqze5
https://www.yuque.com/yashujs/bfug6u/rohgii
https://www.yuque.com/yashujs/bfug6u/bvga5c
https://www.yuque.com/yashujs/bfug6u/sgcvgz
https://www.yuque.com/yashujs/bfug6u/seevgg
https://www.yuque.com/yashujs/bfug6u/azr88v
名人名言
思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程
声明
部分内容来自网络
本教程仅用于学习, 禁止用于其他用途