0

HTC One Android フォンの EncryptedCache に問題があります。同じコードが別の電話とブラウザー シミュレーターで機能しますが、私の HTC One Android 電話では異常なエラー コードで失敗します。

私が使用している: Worklight 6.2
失敗する: HTC one、android 4.4.2 (Cyanogenmod)
作業中: Samsung I9100 Galaxy S II
作業中: ブラウザ シミュレーター

携帯電話で WL.EncryptedCache.open が失敗し、ステータス 10.. が返されます
(* 携帯電話で WL.EncryptedCache.write が失敗し、ステータス 6.. が返されます)。

また、developerworks のサンプル アプリを HTC One スマートフォンでそのまま実行しましたが、同じ結果とエラー コードが得られました。 サンプルアプリのリンク

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

申し訳ありませんが、現在これを再現することはできません。

  1. Worklight Studio 6.2 を Eclipse マーケットプレイスから Eclipse の新規コピーおよび新規ワークスペースにインストール
  2. 暗号化されたオフライン キャッシュ サンプル プロジェクトをダウンロード > Eclipse にインポート
  3. Android 環境を追加し、 > Run As > Run on Worklight Development Server
  4. デバイスにインストール済み (Nexus 5、Android 4.4)
  5. キャッシュを開く、値を暗号化する、キャッシュを閉じる、アプリを終了する、キャッシュを再度開く、キャッシュを再度開く、キーを復号化するなど...すべての操作が成功したようです。

アプリの使用中に Wireshark を使用し、そこからトレース ログを提供していただけますか?
さらに、上記の手順を試すこともできれば。

于 2014-06-26T04:32:51.017 に答える
0

私も同じエラーが発生していました。私の手順は、キャッシュのオープン、書き込み、クローズでした。その後、もう一度開いて読んでください。問題はクローズアップされ、再びオープンになりました。セッション全体でキャッシュを開いたままにしましたが、問題なく動作しました。キャッシュを破棄すると、新しいエントリを書き込むためにキャッシュを閉じてから再度開く必要があるようです。それが役に立てば幸い。

于 2014-12-09T12:11:48.820 に答える