iOS - UIWebview - 3G 上的评论被剥离

Posted

技术标签:

【中文标题】iOS - UIWebview - 3G 上的评论被剥离【英文标题】:iOS - UIWebview - Comments stripped over 3G 【发布时间】:2011-09-10 03:47:24 【问题描述】:

我正在请求包含 cmets 的 UIWebView 中的网页(它们是不可或缺的,因为它们包含 UIWebView 用来调整设置的隐藏信息)。

通过 Wifi 可以正常工作,但是通过 3G 从 UIWebView(使用 javascript)查询源返回的输出中删除了所有空白和 cmets。

我的第一直觉是服务器在应用压缩,但客户端拒绝了,ios 中是否有设置请求这个,或者 3G 网络运营商(在这种情况下为 O2 - UK)正在剥离内容.

有人看到这个,或者知道解决方案吗?

非常感谢!

【问题讨论】:

【参考方案1】:

确实是 ISP 剥离了 cmets ......我解决这个问题的方法是让客户端在页面内设置 JS 函数,返回最初隐藏在 cmets 中的响应(无论如何,这是一个更清洁的解决方案)。

然后检索信息:

[webView stringByEvaluatingJavaScriptFromString:@"functionName();"];

【讨论】:

【参考方案2】:

您总是可以在 Firefox 中使用系留笔记本电脑进行测试,并将您的用户代理设置为 UIWebView 将发送的内容,例如:

Mozilla/5.0 (iPhone; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (Khtml, like Gecko) Mobile

然后您可以在浏览器中查看源代码。

【讨论】:

【参考方案3】:

ISP 正在查看标头并删除 cmets 和空格以节省带宽。您可以使用自己的属性将此数据嵌入到标记标签中。例如:

<div myDataAttr='id_123'>
 ...
</div>

编辑

您也可以考虑使用HTML 5 custom data attributes。

<div data-id='123' data-name='John'>
...
</div>

【讨论】:

以上是关于iOS - UIWebview - 3G 上的评论被剥离的主要内容,如果未能解决你的问题,请参考以下文章

UIWebView 中的 Facebook 身份验证不会重定向回我网站上要求身份验证的原始页面

iOS UIWebView 允许所有三方cookie

iOS“默认”UIWebView/WebKit 上的 WebAudio 支持

在 iOS 中禁用 uiwebview 上的某些触摸事件

iOS 应用上的 OAuth2 加载 uiwebview 以让用户接受连接

iOS 10 beta 上的 UIWebView:不加载任何 svg 图像