#iOS #小组件 #监控 #HTTPWidget
🤔 感谢小一给的
灵感 🟢背景:想要看看
YxVM的SG机器 啥时候补货,监控官方Web端的库存数量。如果有个小组件会直观很多,有很多种实现需求的方式,纯属自己瞎折腾一下🫡。
以下是
简单喂饭教程,详细教程请看
这里:
0. 根据
官网接口分析和页面元素DOM分析,确定接口和DOM结构,这里以监控YxVM的SG机器为例子
1. 下载
HTTPWidget2. 点击右上角加号,新增一个Request,其实它相当于一个API Client,可以看到许多配置选项,我们只需要配置好URL、Method、响应的解析,就可以进行下一步操作
🟢具体配置
填入请求相关配置,据了解官网目前已经屏蔽友商ASN以防止脚本抢🐔,需要使用其他节点访问官网。
URL:https://yxvm.com/index.php?rp=/store/singapore-hybrid-beta
HTTP Method: GET
Extract by: Javascript
通过接口响应和页面元素分析,实际上我们需要获取的就是id属性为`product2`子节点下的类名为qty的span标签里的文本元素,输入以下JavaScript代码,点击
Execute Script可以查看效果
// 使用正则表达式匹配 id="product2" 的 div 及其内容
const product2Match = responseString.match(/]*id="product2"[^>]*>([\s\S]*?)/i);
if (product2Match) {
// 在匹配到的内容中查找类名为 qty 的 span 及其内容
const qtyMatch = product2Match[1].match(/]*class="qty"[^>]*>([\s\S]*?)/i);
if (qtyMatch) {
// 提取数字
const numberMatch = qtyMatch[1].match(/\d+/);
if (numberMatch) {
// 返回解析后的数字
return parseInt(numberMatch[0], 10);
}
}
}
// 如果没有找到所需的元素或无法解析数字,返回 null 或其他适当的默认值
return '';
3. 按需打开通知提示,可以配置库存数量
大于0时推送提醒,打开Auto Trigger,并且设置请求接口的时间间隔(这种实现方式推送通知存在不及时的可能,如果有抢🐔需求,考虑后续用别的方案替代)
⚠️由于小组件限制,HTTPWidget 在前台运行时,会按照您设置的时间间隔发送请求。但是,如果 HTTPWidget 在后台运行,则可能无法保证间隔时间。
4. 按需添加桌面小组件,enjoy!