安卓手机启动http-server 访问静态html - termux nodejs

安卓手机启动http-server 访问静态html - termux nodejs

需求

静态页面手机访问,直接访问html会有权限问题,要将资源全部base64嵌入html,小文件还行。最近有个350M的mp3,要是嵌入到html,base64就太大了。

上下文环境

我的手机是华为手机

方案 termux

  1. 安装termux
    安装页面 https://f-droid.org/en/packages/com.termux/
    Version 0.119.0-beta.2 (1021) - Added on Apr 05, 2025
    https://f-droid.org/repo/com.termux_1021.apk

  2. 进入termux安装 nodejs

  • 让app有读写权限:termux-setup-storage
  • 更新软件源(需要上梯子): pkg update
  • 安装node:pkg install nodejs
  • 安装server: npm install -g http-server
  • 在根目录创建脚本:nano ~/s.sh
# 这里shared目录就是我手机里的根目录,我在手机的sd卡里面根目录创建了root目录,里面有个aaaWeb目录
cd storage/shared/root/aaaWeb
http-server -o
  • 退出编辑脚本:Ctrl + 大写X 然后y 然后回车 退出编辑
  • 设置app启动命令: nano ~/.bashrc
  • 进入编辑 添加:
bash ~/s.sh
  • Ctrl + 大写X 然后y 然后回车 退出编辑
  • 给权限: chmod +x ~/s.sh

使用过程

  • 手机桌面点击 termux app图标,自动启动http-server服务,自动打开浏览器,html目录是/root/aaaWeb/index.html
  • 如果临时要操作termux,就进入后ctrl+c

其他

  • http-server 退出快捷键 ctrl+c

app套壳启动

http-server -o 不用浏览器启动 然后用自己的app启动访问 http://127.0.0.1:8080/

nano ~/s.sh
命令改为

http-server
am start -n aaa.aaaWeb.hengping2apk/.MainActivity
这个失败了~

http-server 缓存问题

ctrl+c 退出
nano ~/s.sh
http-server -c -1 -p 8080
ctrl+x y 回车
缓存问题没解决~~
安卓端设置
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
解决了
上的解决方案不行,3d场景的js 运行几下就崩了,改成下面的代码 解决了

webView.clearCache(true); // 清空资源缓存
        webView.clearHistory();   // 清空历史记录
        webView.clearFormData();  // 清空表单数据

还是设置缓存,每次app打开的时候,清空一下缓存。

posted @ 2025-05-16 14:02  彭成刚  阅读(123)  评论(0)    收藏  举报