javascript - 强制门户上的权限弹出窗口

标签 javascript php mobile-website captivenetwork

我正在创建这个应该由强制门户触发的登录页面。
在我的登录页面上,有一个按钮可以触发打开 <video>然后用于扫描二维码的元素。
默认情况下,在访问网络摄像头或设备的摄像头时,浏览器会首先询问用户的许可。所以基本上一切都在浏览器上工作正常。
在将其作为由强制门户触发的登录页面提交后,出现了一些不一致之处。
在我同事拥有的大多数 Android 手机上,他们默认拒绝该权限。
在某些 android 设备上,会显示请求权限的弹出消息,并且与浏览器版本一样按预期工作。
在 IOS 设备上,弹出窗口只是被阻止(不是拒绝,而是忽略)
我知道它在 IOS 上被忽略了,因为错误消息甚至没有显示,就好像强制门户没有对弹出窗口采取任何操作一样。
我读过几个关于强制门户的论坛,所有这些都让我相信强制门户本质上只是一个更轻量级的内置浏览器版本,根本没有能力运行window.alert()。和 window.confirm()也不能保存 cookie。
我的“研究”还使我相信强制门户具有操作系统特有的不同行为集,而不是安装在该操作系统本身上的浏览器。
1 blog我今天读到,特别是评论部分,提到从 IOS 11.2 开始,强制门户应该已经能够运行 window.alert()window.confirm() .但是,经过测试,事实并非如此。
所以我的问题是,有没有办法解决这个限制,仍然允许用户决定是允许还是拒绝摄像头访问?
我的“研究”表明,不可能以编程方式重定向强制门户以在浏览器上打开,并且只有少数手机具有带有“在浏览器中打开”选项的强制门户。
有没有人知道有什么方法可以拦截权限弹出窗口并将其显示为普通的 HTML 元素,然后以编程方式传回用户响应?
提前致谢! :)

最佳答案

干扰系统 UI 流是不可能的。我必须严格控制与系统 UI 相关联的运行代码,以不允许用户敲诈勒索方案,例如“使用手机执行此操作以获得互联网访问权限”。从操作系统 vendor 的 Angular 来看,强制门户仅涉及通过提供商同意或拒绝互联网使用条款。
您必须更改为两层方法,分别提供强制门户和登录页面:

  • 让用户查看强制门户
  • 在他们使用浏览器时提供您的登录页面。

  • 为了方便和为第二层用户做好准备,请在您的强制门户中包含一个指向您的登录页面的链接,例如“在此处开始使用互联网”之类的内容。还可以查看 Android 中的最新更改和 Apple's OSs关于 Captive Portal APICaptive-Portal Identification in DHCP / RA . (via)
    将受限俘虏门户视为设备端方面,将丰富的 UI 登录页面视为访问互联网的提供商端方面,出于安全原因无法统一。

    关于javascript - 强制门户上的权限弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53591260/

    相关文章:

    javascript - javascript 的两个元素在 Internet Explorer 中发生冲突

    php - SQL中的条件表达式

    jquery - 如何 "turn off"jQuery Mobile 的 <select> 下拉样式?

    java - SpringMVC - 移动访问时更改 View

    css - 有哪些 em 能做而 % 不能做的事情?

    javascript - 在html页面中显示csv文件的内容

    javascript - 推荐 上一个按钮 jquery

    javascript - 使用 Javascript Scrapy 登录重定向站点

    javascript - PHP/将数字作为字符串发布,intval无法将其转换为数字

    php - MySQL 在 PHPmyadmin 的终端中工作,但在 php 脚本中不工作?