正在开发适用于 Android 和 iOS 的跨平台 Ionic 应用程序。
我的要求是检测其他应用程序是否在我的应用程序屏幕前面的浮动窗口中以 PiP(画中画)模式运行。
我尝试使用文档的 visibilitychange 事件监听器,希望如果任何浮动窗口应用程序在我的应用程序前面运行,它将返回 hidden,但事实并非如此。
它仅检测应用程序何时分别使用 hidden 或 visible 值进入 background 或 foreground。
这是我尝试过的代码,但我知道这是错误的,因为它没有检测到我的应用程序上方其他应用程序的任何画中画浮动窗口:
document.addEventListener('visibilitychange', function() {
if (document.visibilityState === 'hidden') {
stopTimer();
}
else {
startTimer();
}
});
在 Android 上,没有官方 API 或方法允许一个应用程序检测另一个应用程序是否处于画中画模式。 Android 在应用程序之间强制执行严格的界限,因此您的应用程序无法监视其他应用程序的活动或状态。
但是如果这两个应用程序都属于您。您可以覆盖
onPictureInPictureModeChanged
并将其写入 contentProvider。并观察其他应用程序中的数据