jQuery - 检测 iPhone 通话状态栏

Posted

技术标签:

【中文标题】jQuery - 检测 iPhone 通话状态栏【英文标题】:jQuery - detect iPhone in-call status bar 【发布时间】:2014-11-15 05:36:48 【问题描述】:

正如标题所示,jQuery 中是否有任何方法可以检测/确定通话状态栏是否可见(因此如果用户正在通话中),因此我可以相应地更改我的 ios Web 应用程序的 GUI ?

我意识到“确定用户是否在通话中”可能无法通过 javascript。我也知道这可以使用 Objective C 和 Phonegap/Cordova 插件来完成。但是,这不是我正在寻找的解决方案。

我宁愿寻找一种解决方法,它通过一些其他参数来确定这一点,例如通过测量状态栏的高度或以任何方式orientation change event。有什么想法吗?

PS。如果您想看看我迄今为止毫无结果的尝试,请告诉我。

【问题讨论】:

状态栏不是 WebView 的一部分,所以如果它的任何内容都可以通过 Javascript 访问,我会感到非常惊讶。 这绝对正确,但正如我所说,我正在寻找一种方法来以另一种方式解决这个问题。例如测量画布大小,在类似于 onOrientationChange 的东西上添加监听器等。 【参考方案1】:

是的,就是这么简单 - 只需测量画布高度!假设用户使用 iPhone:

var biggerStatusBar = false;
var screenHeight = window.screen.height;
var canvasHeight = $(document).height();
if(screenHeight-canvasHeight==40)
biggerStatusBar =true;

alert("in-call status bar active: " + biggerStatusBar);

【讨论】:

没错,我会彻底测试一下,如果需要,我会回来修改。 例如,我认为在进行转向指示时会出现类似的状态栏,所以我希望它对画布大小有相同的影响。 是的,我非常清楚这一点,这对我没有任何影响。我想要的只是能够根据画布大小的变化来调整 GUI。 @Johnathan:那么你的问题标题,实际上是问题本身,有点误导,不是吗?如果您只关心画布大小,那么如何更改应该(并且显然是)无关紧要。

以上是关于jQuery - 检测 iPhone 通话状态栏的主要内容,如果未能解决你的问题,请参考以下文章

iPhone App 通话情况

如何在通话期间以编程方式在 iPhone 的两个扬声器上播放声音

iOS 后台状态监控通话状态

在网站上列出电话号码以进行点击通话的最佳方式

如何检测非侵入式电话

如何检测iphone应用程序状态变化? [关闭]