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);
}
});
}