【问题标题】:Running angularJS in an Captive Network Assistant (WISPr) on iOS and OSX在 iOS 和 OSX 上的 Captive Network Assistant (WISPr) 中运行 angularJS
【发布时间】:2015-08-01 22:04:06
【问题描述】:

从以前的项目中,我知道 Apple 的 Captive Network Assistant(也称为 WISPr 客户端)运行受限浏览器,请参阅 How can I debug the browser in Captive Portal?Ajax on Captive Network Assistant on iOS and OSX

我的热点正在运行一个 angularJS 网页。在 Windows Phone 8.1 和 OS X Lion 上,我的角度页面工作正常。在我的 iOS 8.3 上,代码中一定有 JavaScript 错误,因为我可以在代码中看到角度变量表达式{{myVar}},这意味着角度框架未正确加载。

知道可能是什么原因吗?

【问题讨论】:

  • 在 Mobile Safari 中可以使用吗?
  • 是的,确实如此,而且效果很好。

标签: javascript ios angularjs captivenetwork wispr


【解决方案1】:

已解决

找到原因的不是我,而是我的一个朋友。事实证明,CNA 浏览器(WISPr 客户端)不允许使用浏览器的本地存储。每当您尝试将一些数据写入本地存储时,应用程序就会崩溃。 因此,解决方案是从本地存储切换到普通 cookie,或者在 JavaScript 中进行用户代理检测,并从本地存储的使用中排除 CNA 浏览器(WISPr 客户端)。

非常感谢@chedabob,检查 JS 是否启用的想法导致了本地存储检查。非常感谢您的支持。

【讨论】:

  • 您能否在 CNA 中检测本地存储,例如typeof window.localStorage == 'undefined'?
  • 这是一个更好的方法!
【解决方案2】:

您可以使用 WeinRe 远程调试它,但是如果您的问题的根源是 Captive Portal 视图没有运行 Javascript,那么这可能无济于事

https://people.apache.org/~pmuellr/weinre-docs/latest/

【讨论】:

  • 谢谢@chedabob,我还不知道weinre。我对此有所了解,因为确实这似乎是一个好方法。但不幸的是 weinre 要求 debug_client 和 debug_target 能够在网络中相互通信。在我启用 WISPr 的路由器上,连接的设备不会在网络上看到对方。我无法关闭网络分离,因此使用 weinre 进行调试似乎不是调试 CNA 浏览器(WISPr 客户端)的选项。
  • 回到 CNA 浏览器(WISPr 客户端)的问题。 Javascript 已启用并正常工作,刚刚通过注入代码的“hello world”测试脚本确认了这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 2015-08-09
相关资源
最近更新 更多