我可以根据模式检测运行不同版本的网站吗

Posted

技术标签:

【中文标题】我可以根据模式检测运行不同版本的网站吗【英文标题】:Can I run different versions of my website based on detection of mode 【发布时间】:2014-07-24 21:04:44 【问题描述】:

我想创建一个网站。如果我通过信息亭在特定活动中查看该网站,则该网站的行为将有所不同。信息亭,将只是一个 iPad。我相信我可以弄清楚如何锁定 iPad 以充当信息亭,并根据 http://www.webascender.com/Blog/ID/447/How-to-Setup-Kiosk-Mode-Lock-Your-iPad-to-Just-One-App#.U9Fx3oBdVX4 显示我的网站

但我要问的是,在代码中,有没有办法检测我处于“信息亭”模式并显示不同的页面?例如,如果您在家(或任何不是活动的地方),您应该能够访问我的网站以了解有关我公司的所有信息并查看您现有的个人资料。您应该能够在“信息亭”(参加活动的 iPad)上看到这些相同的页面,但您现在将看到其他页面,例如处理特定活动的页面和付款页面。反之亦然,您在家时可能会看到网站上的其他页面,而这些页面在“信息亭”模式下是看不到的。

我不知道解决方案是否依赖于工具/语言,因为我们尚未确定我们将用于构建网站的所有工具/语言/框架,所以我对所有人开放,但我们肯定会有一些 javascript /css/html

【问题讨论】:

我知道您可以使用 UIAccessibilityIsGuidedAccessEnabled 方法在本机应用程序中执行此操作,但由于这是一个 网站,我认为无法检测到此模式是软件启用的,超出了浏览器的范围。 【参考方案1】:

我相信您需要编写一个原生应用程序来检测您是否处于“引导访问”又名“信息亭”模式。

取自Detect or react to Guided Access?

NSLog(@"Accessabilitiy enabled: %@", UIAccessibilityIsGuidedAccessEnabled() ? @"YES" : @"NO");

if (!UIAccessibilityIsGuidedAccessEnabled()) 
   // show something since I'm not in guided access

如果你想知道它什么时候改变...

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(guidedAccessChanged) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil];

- (void)guidedAccessChanged

    // do something when guided access changes

如果您必须使用网站,那么您可以编写一个嵌入 UIWebView 的本机应用程序。此类允许您在本机应用程序中显示网站。因此,您可以使用此方法将引导访问设置传递给您的网站,以便它可以相应地进行自我调整。

【讨论】:

【参考方案2】:

如果您知道 IP 地址,则可以使用 php(可能还有许多其他程序)直接查看。或者,您可以锁定 iPad 以仅打开特定 URL (http://mysubdomain.mydomain.com),并且只有您希望信息亭查看的页面。我敢肯定还有很多其他方法。

【讨论】:

以上是关于我可以根据模式检测运行不同版本的网站吗的主要内容,如果未能解决你的问题,请参考以下文章

如何让多个域名解析到同一台服务器上的不同网站

求助如何在一个VPS安装两个不同版本的php?

我可以在我的服务器上安装和运行不同版本的 php 吗?

IE的“浏览器模式”和“文档模式的区别”

检测浏览器 TLS 兼容性

具有不同.net版本的多个应用程序可以在同一台服务器机器上运行吗