Javascript 铬版。58“;TypeError:navigator.storage.estimate不是函数;

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以上的浏览器版本似乎也不会遇到同样的问题 以下是运行该函数的

当web应用程序在Android平板电脑上启动时,我的indexedDB有一段代码运行
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