【问题标题】:iOS 7.1.1 Safari browser messing up with online/offline statusiOS 7.1.1 Safari 浏览器搞乱在线/离线状态
【发布时间】:2014-06-30 01:07:58
【问题描述】:

我有一个跨浏览器在线/离线测试,用于设计在多个浏览器上运行的网页。 它适用于免费指标:

  • 窗口上的事件监听器
  • document.body 上的事件监听器
  • navigator.onLine 变量的轮询

http://jsfiddle.net/3mMfG/

window.addEventListener("online", function() {
    document.getElementById('test1').innerHTML = "online";
}, false);

window.addEventListener("offline", function() {
    document.getElementById('test1').innerHTML = "OFFLINE";
}, false);


document.body.ononline = function() {
    document.getElementById('test2').innerHTML = "online";
};
document.body.onoffline = function() {
    document.getElementById('test2').innerHTML = "OFFLINE";
};


setInterval(function () {
    if (navigator && navigator.onLine) 
        document.getElementById('test3').innerHTML = "online";
    else
        document.getElementById('test3').innerHTML = "OFFLINE";
}, 500);

我在多个 iOS、Android 或笔记本电脑浏览器上成功使用了这段代码。

在特定的 iOS 7.1.1 设备上它不起作用。我已经成功地在其他 iOS 7.1.1 设备上对其进行了测试,但是在这个特定的设备上,当离线时,几秒钟(~5)后,所有指标都恢复为“在线”。

我已经在多台设备上进行了测试,但只能在这个特定的设备上重现问题。我使用“飞行保存模式”按钮将其设为离线,不允许使用 wifi 或蓝牙,但几秒钟后,浏览器中触发在线事件,并且 navigator.onLine 变量变为 true...奇怪...

如果您对正在发生的事情有任何线索,我将很高兴与您交流。

如果您使用 您的 设备测试该页面,请随时发表评论,让我知道它是否可以在 您的 设备上运行。谢谢

【问题讨论】:

    标签: ios html offline-browsing


    【解决方案1】:

    对我来说,它在 iPhone 8 plus Simulator iOSv11 上出现错误。我必须打开如下所示的“允许 HTTP 服务”才能让 navigator.onLine 返回 true -

    在设置->开发者->“允许HTTP服务”下

    【讨论】:

      【解决方案2】:

      在 iOS 设置应用中重置网络设置更正了此行为...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-20
        • 1970-01-01
        • 2010-09-08
        • 1970-01-01
        • 2015-05-13
        • 1970-01-01
        • 2022-11-11
        • 1970-01-01
        相关资源
        最近更新 更多