Chrome扩展程序可监控自助服务终端并在需要时重新加载

时间:2012-07-22 09:08:03

标签: google-chrome google-chrome-extension kiosk

我有一个处理人物肖像的小亭子。它以chrome运行。

使用信息亭的200人中有一人最终会在此过程中冻结。当它冻结时,我从来没有得到“啊快照”,页面有点挂起。

我想知道是否可以进行扩展以监控页面并检查心跳 - 如果在30秒后没有看到重新加载窗口。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:5)

  1. 让自助服务终端页面中的内容脚本每隔X秒发送一条消息回到后台页面

    在内容脚本中:

    var port = chrome.extension.connect({ name: "keep-alive" });
    
    port.postMessage('is-alive', { alive: true });
    
    setInterval(function () {
        port.postMessage('is-alive', { alive: true });
    }, 1000 * 15);
    
  2. 如果后台页面检测到该消息在一段时间后仍未返回,则重新加载选项卡

    在后台页面中:

    var last = Date.now();
    var interval = 1000 * 15;
    
    chrome.extension.onConnect.addListener(function (port) {
        if (port.name === 'keep-alive') {
            port.onMessage.addListener(function (data) {
                if (data.type === 'is-alive' && data.payload.alive === true) {
                    last = Date.now();
                }
            });
        }
    });
    
    setInterval(function () {
        if (Date.now() - last > interval) {
            // Reload the tab...
        }
    }, interval);
    
  3. 有关重新加载选项卡的信息,请参阅chrome.tabs文档。您需要将tabs添加到清单中的权限列表中。

    如果您想了解有关邮件传递的更多信息,请参阅Messaging文档。