检测ios11设备是否处于低功耗模式,以防止正常自动播放video时出现错误的UX

我在iOS11设备上自动播放video时遇到了一个大问题(至少在iphone 7 ios 11.2.5 safari上测试过)。

关于自动播放video的政策变更到了,我们的自动播放video停止了工作。 我们的应用程序严重依赖video。

我们深刻改变了用户与video交互的所有步骤,以确保它们不会被阻止,并且默认情况下它们已静音,并且在用户手势后触发自动播放。 所以video自动播放静音,我们认为我们已经做了几天的工作。

但是有一个问题:上周,我正在测试我的girklfriend 11.2 iphone网站和boum ……video被封锁了。 我不明白为什么…… 发现原因是……我在给电池充电时正在使用她的手机!

事实上在ios11上,当你为手机充电时,它会自动进入“低功耗模式”嘿嘿……从而阻止自动播放video。 如果您进入设置> itune和苹果商店并转到“自动播放video”设置,您将看到(当它在低功耗模式下充电时):

“低功耗模式开启时无法使用自动播放video”….

因此,世界各地成千上万的用户在充电时连接到我们的网站将会有破碎的体验而且没有video加载! (即使在用户激活声音之前静音,我们也非常依赖自动播放video)

在这种情况下,我们如何检测到这一点并至少向用户提供解释器消息,例如“我们的video无法在低功耗模式下播放(或为手机充电)。

我理解苹果茁壮成长以保护用户形成自动播放不良体验,但在这里我们努力改变我们的代码库以符合他们的新政策,但我们在他们的文档中看不到我们的网络应用程序(javascript)如何检测低功耗模式’或手机充电状态)。 这是不公平的:如果他们在某些情况下改变了行为,例如低功耗模式,他们应该按照自己的规则进行游戏,让我们通过让我们检测这个设备状态来创建一个合规但高质量的体验。 这样我们就可以为用户提供一种B计划或后备计划。

任何想法如何检测iphone正在充电或在javascript为web应用程序的低功耗模式? 或者如何处理这个?

我认为您提到的设置属性仅适用于App Store中的video预览,而不适用于任何WebView。 事实上,我现在已经在我的手机上尝试了这个W3演示 , 如果我在video标签中添加mutedinline ,它会自动播放。 (所以它看起来像这样: )。

注意:我的手机目前为17%,无论我是否正在充电,它都可以工作,低功耗模式似乎也没有影响。 我在iOS 11.4 Beta上。

重要的是这些附加标签,这些标签记录在此WebKit Blogpost中 。