Web で使用される Javascript コードと、Phonegap を使用する Android アプリでいくつかの Javascript コードを使用します。
最初、私のコードはデフォルトでローカル ストレージを使用するように設定されていました。ローカル ストレージがない場合は、デフォルトで Cookie が使用されます。
ただし、いくつかのコンテキスト (複雑すぎてここに入ることができない) では、それは機能しないので、別の方法で実行できるかどうかを確認したいと思います: デフォルトで Cookie を使用し、Cookie が使用できない場合はローカル ストレージを使用します。
本当に、Cookie に問題があるのは Android だけなので、基本的に私のコードが Android デバイスで使用されている場合は、ローカル ストレージに切り替えたいと考えています。
いずれにせよ、私が持っているクッキー/ローカルストレージデータを設定するためのコードは次のとおりですが、機能していません:
function setCookie(c_name, value, expiredays)
{
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" + escape(value) +
((expiredays === null) ? "" : ";expires=" + exdate.toUTCString());
if(document.cookie.length < 1 && typeof localStorage != "undefined")
{
localStorage.setItem(c_name, value);
}
}
問題は、それが言うところにあるのではないかと思いますdocument.cookie.length < 1
。これは、Cookie が設定されているかどうかを確認する信頼できる方法ですか?
結論: デフォルトで Cookie を確実に設定し、Cookie が存在しない場合に代替手段としてローカル ストレージを使用するにはどうすればよいでしょうか?