0

我的 HTC One Android 手机上的 EncryptedCache 有一些问题。相同的代码适用于另一部手机和浏览器模拟器,但在我的 HTC One 安卓手机上失败,并出现异常错误代码。

我正在使用:Worklight 6.2
失败:HTC one,android 4.4.2 (Cyanogenmod)
正在使用:Samsung I9100 Galaxy S II
正在使用:浏览器模拟器

WL.EncryptedCache.open 在我的手机上失败并返回状态 10..
(* WL.EncryptedCache.write 在我的手机上失败并返回状态 6..)

我还在我的 HTC One 手机上按原样运行 developerworks 的示例应用程序,结果和错误代码相同。 示例应用链接

Logcat 日志:

  • 从示例应用程序
    1) 已销毁缓存
    2) 输入新密钥
    3) 打开缓存
    4) 收到警报错误消息

完整的日志可以从这里下载

我的代码是:

function wlCommonInit(){

var STORAGE_ID = 'todos';
WL.EncryptedCache.open(STORAGE_ID, true, 
        function(){ //success
            console.log('--> cache opened');
            console.log("--> Loading Angular");
            angular.element(document).ready(function() {
                 angular.bootstrap(document, ['todomvc']);
                 //location.hash = "/";
             });
        }, 
        function(status){ //fail
            console.log("WL.EncryptedCache open error status: " + status);
                switch(status){
                case WL.EncryptedCache.ERROR_KEY_CREATION_IN_PROGRESS:
                    alert("ERROR: KEY CREATION IN PROGRESS");
                    break;
                case WL.EncryptedCache.ERROR_LOCAL_STORAGE_NOT_SUPPORTED:
                    alert("ERROR: LOCAL STORAGE NOT SUPPORTED");
                    break;
                case WL.EncryptedCache.ERROR_NO_EOC:
                    alert("ERROR: NO EOC");
                    break;
                case WL.EncryptedCache.ERROR_COULD_NOT_GENERATE_KEY:
                    alert("ERROR: COULD NOT GENERATE KEY");
                    break;
                case WL.EncryptedCache.ERROR_CREDENTIALS_MISMATCH:
                    alert("ERROR: CREDENTIALS MISMATCH");
                    break;
                default:
                    alert("AN ERROR HAS OCCURED. STATUS :: " + status);
            }
        });

}
4

2 回答 2

0

我也遇到了同样的错误。我的步骤是打开缓存、写入、关闭。然后再次打开并阅读。问题已关闭并再次打开。我在整个会话期间保持缓存打开,它运行良好。看起来当您销毁缓存时,您可能必须关闭它并再次打开以写入新条目。希望能帮助到你。

于 2014-12-09T12:11:48.820 回答
0

很抱歉,我目前无法重现此内容。

  1. 将 Eclipse 市场中的 Worklight Studio 6.2 安装到新的 Eclipse 副本和新工作区中
  2. 下载了 Encrypted Offline Cache 示例项目 > 导入到 Eclipse
  3. 添加了 Android 环境和 > Run As > Run on Worklight Development Server
  4. 安装在设备上(Nexus 5、Android 4.4)
  5. 打开缓存,加密一些值,关闭缓存,退出应用程序,重新打开,重新打开缓存,解密密钥等......所有操作似乎都通过了。

您能否在使用该应用程序时使用 Wireshark 并从那里提供跟踪日志?
另外,如果你也可以试试上面的步骤。

于 2014-06-26T04:32:51.017 回答