google-chrome-extension - 无法检测 PWA 是否安装在第一个页面视图上?
问题描述
我有一个桌面 Chrome 扩展程序,我通常希望在每个域上运行它。在manifest.json
:
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"run_at": "document_start",
"js": ["contentScript.js"]
}
],
但是我不希望它为已安装的 PWA 运行。在我的内容脚本中,我进行了以下检查:
const isInstalled =
window.matchMedia('(display-mode: standalone)').matches ||
window.matchMedia('(display-mode: fullscreen)').matches ||
window.matchMedia('(display-mode: minimal-ui)').matches;
if (isInstalled) {
// Don't run
} else {
// Run
}
从技术上讲,它仍在“运行”,但这种类型的检查对我来说是可以的。但是,这样做有两个问题:
首先,在第一次安装和打开 PWA 时,检查不起作用,即使在那之后它确实起作用。
其次,在第一次查看之后,它确实适用于我测试的大多数 PWA(keep.google.com、www.soundslice.com、music.youtube.com),但对于 app.starbucks.com,它根本不起作用。
解决方案
推荐阅读
- node.js - 使用 NodeJS 在 mssql 中创建嵌套事务
- node.js - 运行 gulp 时出现“AssertionError [ERR_ASSERTION]:必须指定任务函数”
- android - 检测 Android 设备是否可折叠?
- percentage - 计算特定值的百分比?
- javascript - 在我的 Firebase 应用程序中写入然后读取数据的推荐方法是什么?
- react-native - 有没有办法把 `options` 变成和 `navigationOptions` 一样的功能呢?
- udp - lwIP telnet 连接的密码保护
- reactjs - 类型错误:list.push 不是函数
- php - 在链配置的命名空间 App\Document 中找不到类“App\Repository\UsersRepository”
- python - 当我使用 Flask 渲染模板时,为什么我的 html 代码没有输出变量的值?