Javascript 铬版。58“;TypeError:navigator.storage.estimate不是函数;
当web应用程序在Android平板电脑上启动时,我的indexedDB有一段代码运行Javascript 铬版。58“;TypeError:navigator.storage.estimate不是函数;,javascript,reactjs,google-chrome,navigator,Javascript,Reactjs,Google Chrome,Navigator,当web应用程序在Android平板电脑上启动时,我的indexedDB有一段代码运行navigator.storage.estimate(),该平板电脑应该运行Android 7.1.1 我在使用chrome浏览器的Androids上遇到了一个问题。58这种情况发生了: TypeError:navigator.storage.estimate不是一个函数 从MDN文档中可以看出,从版本52开始,应该支持.estimate()。 58以上的浏览器版本似乎也不会遇到同样的问题 以下是运行该函数的
navigator.storage.estimate()
,该平板电脑应该运行Android 7.1.1
我在使用chrome浏览器的Androids上遇到了一个问题。58这种情况发生了:
TypeError:navigator.storage.estimate不是一个函数
从MDN文档中可以看出,从版本52开始,应该支持.estimate()
。
58以上的浏览器版本似乎也不会遇到同样的问题
以下是运行该函数的代码:
const storageSetup = async () => {
let errorMessage = undefined;
try {
const granted = await navigator.storage.persist();
if (granted)
console.log("Storage is now going to be persistent...", granted);
} catch (error) {
errorMessage = `Client did not allow storage to be persistent..${error}`;
}
try {
const response = await navigator.storage.estimate();
console.log("Storage Estimate, ", response, "Usage: ", (response.usage * 100 / response.quota).toFixed(2));
} catch (error) {
errorMessage = `estimate() is not supported on tablet, ${error}`;
}
您正在使用的文档用于
StoreManager
而不是navigator.storage
const storageSetup = async () => {
let errorMessage = undefined;
const storage = navigator.storage || StoreManager;
try {
const granted = await storage.persist();
if (granted)
console.log("Storage is now going to be persistent...", granted);
} catch (error) {
errorMessage = `Client did not allow storage to be persistent..${error}`;
}
try {
const response = await navigator.storage.estimate();
console.log("Storage Estimate, ", response, "Usage: ", (response.usage * 100 / response.quota).toFixed(2));
} catch (error) {
errorMessage = `estimate() is not supported on tablet, ${error}`;
}
您可能想从使用当前安全版本的Chrome开始?我们现在在v80上。V58将于2017年4月推出,除了那些将浏览器锁定在自动更新之外,没有人会再使用它了。除非你真的在谈论Android WebView浏览器,否则你必须解释你使用的是哪个版本的Android。谢谢你的回复。android平板电脑锁定在浏览器58上,由于我们无法控制的第三方MDM,无法更新。我相信android版本是7.1.1,但我无法控制平板电脑是否在此时更新。我更新了原始帖子,加入了Android版本。(编辑)对不起,我真的认为它可以工作,但显然StorageManager在浏览器58上也没有定义。你是对的,我误读了文件。如果你有什么建议我很乐意听,thanks@fishcakesAndCoffee持久化是未定义的还是StoreManager?他们使用的是requestPersistent而不是Persistent。StorageManager本身未定义,但navigator.storage.estimate也未定义。不过,似乎已经定义了navigator.storage和navigator.storage.persist