gpt4 book ai didi

javascript - iOS 8 错误 - 当设备从 sleep 中返回时,OnUpdateReady 不再调用

转载 作者:可可西里 更新时间:2023-11-01 04:51:35 26 4
gpt4 key购买 nike

当运行 Web 应用程序(即从主屏幕上的快捷方式启动)的 iOS 8 设备从其 sleep 状态返回时,所有异步 Web 请求都无法触发 OnUpdateReady 回调。

这个问题很容易重现 - 只需将下面的两个代码文件放在任何 Web 服务器上并试一试。

有没有其他人遇到过这个问题?如果是这样,是否有任何解决方法?

我发布这篇文章是为了吸引人们注意 iOS 8 中的这个错误,它基本上毁了我所有的网络应用程序——我们不得不建议不要升级到 iOS 7 之后。是的,我已经发布了Apple Bug Reporter 上的问题,但我认为没有人在看这些,因为已经很长时间了。

应用 list

CACHE MANIFEST
# 2014-09-24 - Test

CACHE:
default.html

默认.html

<!DOCTYPE html>
<html manifest="app.manifest">
<head>
<title>Test Harness</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta name="HandheldFriendly" content="true" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<script language="javascript" type="text/javascript">
var Test = new function () {
var _GetEnd = function (oResult) {
var sResult = ': ' +
((oResult.Value === true)
? 'Success'
: 'Failure<br>' + oResult.Reason) +
'<br>';

var oLog = document.getElementById('idLog');
oLog.innerHTML = (new Date()) + sResult + oLog.innerHTML

setTimeout(_GetBegin, 1000);
};

var _GetBegin = function () {
var sURL = 'app.manifest';
var hAsyncCallback = _GetEnd;

try {
var oRequest = new XMLHttpRequest();
oRequest.onreadystatechange =
function () {
if (oRequest.readyState != 4) return;
if (oRequest.status != 200) {
hAsyncCallback({ Value: false, Reason: oRequest.responseText });
} else {
hAsyncCallback({ Value: true, Reason: null });
}
};
oRequest.open('GET', sURL, true);
oRequest.send(null);
} catch (e) {
alert('Critical Error: ' + e.message );
}
};

this.Start = function () { _GetBegin(); }
};
</script>
</head>
<body onload="Test.Start();">
<ol>
<li>Put both app.manifest and default.html on a web server.</li>
<li>Make sure this page is being launched from the Home screen as a web application.</li>
<li>Press the sleep button while it is running.</li>
<li>Press the wake button and unlock the phone to get back to this screen.</li>
<li>Under iOS7x the page continues, under iOS8 the onreadystatechange never gets called again.</li>
</ol>
<div id="idLog"></div>
</body>
</html>

最佳答案

安装 iOS 8.1.1 可以解决此问题。

关于javascript - iOS 8 错误 - 当设备从 sleep 中返回时,OnUpdateReady 不再调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26022261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com