我正在尝试访问专为 iPhone 构建的 C# 网页。我发现您可以将用户代理欺骗为 "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"
让网站认为您是 iPhone。
但是,对于某些网站,我只收到一个响应,告诉我先将网站添加到主屏幕。查看响应,他们似乎正在检查一些变量 "window.navigator.standalone"
以查看网页的访问方式。在谷歌搜索 ( see here ) 之后,这似乎是一种检测网页是否从主屏幕访问的常用方法。
因此,问题是,有没有人知道如何欺骗请求的其余部分,以便加载网页而不是不断要求将其添加到主屏幕?
最佳答案
window.navigator.standalone 是在客户端执行的脚本测试,用于检查站点的启动位置(主屏幕或 safari)。在请求中欺骗用户代理将使站点提供内容,但是当站点在询问 window.navigator.standalone 时,这显然是一个错误的返回。
您没有提到您是否正在执行脚本,或者您正在尝试实现什么,所以我只能推测您请求的站点旨在首先呈现 safari 启动版本,然后在测试变量时替代请求。
你能提供更多细节吗?也许是您请求的网站 URL?
更新:
好吧,那我是对的。如果该脚本没有运行,您将看不到正确的站点。我假设您正在处理自己的请求。您需要做的是将另一个请求作为 POST 发送到 Test.aspx,其中发布数据为 hidHomeScreen=true,从而模拟表单提交。
遗憾的是,这不是一个通用的解决方案,因为检测可能因站点实现而异。
关于C#访问iPhone构建的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6053182/