开发浏览器扩展:如何检测Chrome标签页是否为已安装桌面应用/快捷方式?
区分Chrome普通标签页与已安装应用/快捷方式的方案
你可以通过chrome.processes API结合标签页的进程ID来实现区分:
第一步,获取目标标签页的进程ID:
使用chrome.tabs.get()或chrome.tabs.query()获取标签页对象,其中的processId属性就是该标签页所属进程的ID。第二步,通过进程ID查询进程信息:
调用chrome.processes.get(processId, (process) => {}),在返回的进程对象中,type字段会标识进程类型:- 普通标签页对应的进程
type为"tab" - 已安装应用/快捷方式对应的进程
type为"app"
- 普通标签页对应的进程
注意:chrome.processes API需要在扩展的manifest.json中声明"processes"权限,同时该API仅支持Chrome浏览器。
另外,也可以通过标签页的url特征辅助判断:已安装的应用快捷方式通常会带有特定的URL前缀(比如chrome-extension://开头的应用页面),但这种方式不如进程类型判断准确。
内容的提问来源于stack exchange,提问作者Ben Watsley
相关产品推荐
相关产品推荐

