android - 无法使用端口转发在 Android 手机上调试 webapp
问题描述
我有一个从我的桌面提供服务工作者的网络应用程序,我想在 Android 手机 (Pixel3) 上进行调试。
在桌面上,我使用 localhost 满足开发目的的安全连接 (https) 要求,并且页面显示为安全挂锁,并且服务人员正常工作 - 好!
在电话上,我可以浏览到桌面 IP 地址 (192.168.1.74),并且 Web 应用程序加载并快速响应(尽管没有安全挂锁,正如预期的那样)。
但是在电话上,我无法让安全挂锁出现。
我尝试了我在此处描述的不同方法,包括 localhost,但之前在我的网络服务器中,我将 http://localhost 重定向到 https://localhost,根据此处的评论之一,这并不好。
所以现在,我删除了对 https 的重定向,一起禁用了 https 并且只使用 http://localhost
我按照这里的描述设置了端口转发。(在我的情况下8081 -> localhost:80
:)
我可以通过 USB 电缆连接手机来调试 Web 应用程序,在 chrome://inspect/#devices 中为所需选项卡、Pixel 3 XL 设备选择检查,然后在手机上与 Chrome 上的页面交互并查看桌面上的更改。
当我在手机上的 Chrome 中打开选项卡并输入 localhost:8081 时,页面加载速度非常慢。大多数时候它会因ERR_CONNECTION_REFUSED而失败,有时它会在很长一段时间后加载。
我将手机和桌面上的所有 Chrome 设置恢复为默认设置(例如禁用标志chrome://flags/#allow-insecure-localhost
,chrome://flags/#insecure origins treated as secure
)
但我仍然无法让端口转发工作。
我收集了最终加载的页面的信息。
使用 Chrome 稳定版运行时,在“网络”选项卡中,加载登录页面的时间约为 2 分钟。悬停在 (Initiator) 列附近,我看到了chrome-error://chromewebdata/:1700
(见图)
所以这可能是网络问题?
谢谢,
阿夫纳
桌面:Ubuntu 18.04,Chrome 版本 83.0.4103.61
Pixel 3 XL:Chrome:83.0.4103.106,Android 版本 10
解决方案
我无法使用端口转发。虽然它正在工作,但网络速度非常慢,使得这个选项无法使用。
我终于通过做以下事情解决了这个问题:
在 Web 服务器 (nginx) 配置文件中:
配置了一个不同于默认 80 的任意端口 (8079)
猫 nginx.conf 服务器 {
听 8079;
听 [::]:8079;
...禁用 https 配置
禁用从 http 到 https 的重定向
在桌面上的 Chrome 中
chrome://flags/
配置参数:Insecure origins treated as secure
使用:http: //192.168.1.74 :8079
启用并重新启动 Chrome在 Android 上的 Chrome 中
设置与桌面上的 Chrome 类似的设置并重新启动
之后,我可以从我的 Android 手机调试 Web 应用程序,并注册、安装和使用 service worker。
推荐阅读
- c# - Prism:项目默认xml命名空间必须是msbuild xml命名空间
- ios - Swift - 当收到奇数或偶数作为乘积的答案时更改 UIImageView
- angular - 我在使用 InAppBrowser browser.onloadstart ') 时遇到问题。订阅,使用 de ionic
- docker - Docker image fails to run process in foreground mode
- android - 将片段添加到框架布局
- macos - 如何去除粘连?
- python - Python BeautifulSoup 不会从 XML 返回标签
- log4j - 目录编辑器的 Log4j-Audit 入门失败
- ios - 在 iOS 13 中使用 UIScenes,我如何 AirPlay 镜像屏幕(似乎默认为外部显示)
- python-3.x - Python缩进输出对于相同的代码格式不同