我不想使用某项服务,并且希望让应用程序在本地使用X小时(连续或部分)时弄清楚。在那之后,我想终止功能,只是显示“引用”之类的错误。
答案 0 :(得分:0)
一个基本思路是计算每个浏览器启动/关闭事件之间的持续时间,同时每次浏览器启动时启动一个计时器,间隔等于MAX_TIME - TIME_USED
。
但是,根据此处的说明,Event onBrowserClose for Google Chrome Extension?没有onBrowserClose
事件,如果使用background
权限,只要用户登录计算机,Chrome就会(无形地)运行它还使chrome继续运行,直到用户明确退出chrome。我相信这不是一个好方法。
我认为以下可能是一种解决方法,虽然不是那么完美。
您可以以较小的间隔启动计时器(根据您希望用户使用的小时数,我相信1分钟可能是一个不错的选择)。代码片段看起来像
的manifest.json
{
"manifest_version": 2,
"name": "36683192",
"description": "36683192",
"version": "1.0",
"background": {
"scripts": ["background.js"],
"persistent": false
},
"permissions": [
"storage"
]
}
background.js
setInterval(function () {
chrome.storage.local.get("usageInMinutes", function (result) {
var usageInMinutes = result.usageInMinutes;
if (typeof usageInMinutes === "undefined") {
chrome.storage.local.set({ usageInMinutes: 1 });
} else {
usageInMinutes += 1;
if (usageInMinutes >= MAX_USAGE_IN_MINUTES) {
// Your usage has expired
} else {
chrome.storage.local.set({ usageInMinutes: usageInMinutes });
}
}
});
}, 1000 * 60);