【问题标题】:Illegal access exception with LocalStorage on Android GingerbreadAndroid Gingerbread 上 LocalStorage 的非法访问异常
【发布时间】:2012-10-02 12:38:01
【问题描述】:

我制作了一个 Android/Phonegap 应用程序,它在具有多个 Android 操作系统版本的所有设备上运行良好,除了一些 Gingerbread (2.3) 手机。我正在使用 Phonegap 1.9。

调试代码,我在Javascript上实现了一个illegal access exception,每次使用HTML5的localStorage.getItem()localStorage.setItem()方法。

如何在这些 Android 设备上启用localStorage 功能?

【问题讨论】:

    标签: android cordova local-storage android-2.3-gingerbread


    【解决方案1】:

    这个验证对我有用。 :)(android 2.3 中的 javascript 使用 phonegap)

    Storage.prototype.getArray = function(key) {
            if (this.getItem(key)) {
                return JSON.parse(this.getItem(key)) 
            } else {
                //console.log("no error null value");
            }
    
        }
    

    【讨论】:

      【解决方案2】:

      检查您的 WebView 的 WebSettings 的代码,即检查以下调用:

      WebSettings settings = webView.getSettings();
      
      settings.setJavaScriptEnabled(true);
      
      settings.setDatabaseEnabled(true);
      
      settings.setDatabasePath(this.getApplicationContext()
              .getDir("database", Context.MODE_PRIVATE).getPath());
      
      settings.setDomStorageEnabled(true);
      

      【讨论】:

      • 我很难弄清楚这些设置在哪里。在 phonegap 下,我们需要调用 super.appView.getSettings() 来访问它们。但是,在执行此操作之前必须调用 super.init()。否则,appView 为空。让我尝试按照您所说的更改这些值。
      • 已经测试过了。所有这些设置都是正确的,但我仍然无法存储/检索任何内容。
      【解决方案3】:

      当 .getItem() 返回 null 时,JSON.parse() 方法导致非法异常。只是要小心验证它。 Android 2.3、HTML5 localStorage 和 Phonegap 现在可以完美运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-28
        • 1970-01-01
        • 2021-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-15
        • 1970-01-01
        相关资源
        最近更新 更多