私は、Adobeの(最新の)オープンソースのFlexフレームワークを使用するFlashDevelop(Flash Builderの優れた無料版)を使用しています。Adobe Flex(モバイル):StageWebViewとHTML5の機能:window.localStorageはnullですか?
AndroidとiOS用のアプリも開発したいと考えています。いくつかの部分では、StageWebViewを使用して、AS3コードを書き直すように書き換えたくないコンテンツを表示します。
一言:私は開発の初期段階にあり、これは初めてのフレックスモバイルアプリです。いくつかの部分では、HTML5の機能 'localStore'(javascriptのオブジェクトウィンドウの一部)を使っていくつかのデータを保存します。しかし、この機能はflexのWebkitブラウザでは利用できないようです。また、これが典型的なフレックスの問題であるかどうかを知りたいのですが、アプリをデプロイするときにも存在しますか?この問題は、モバイルデバイス上でHTMLパーツをロードするときには発生しません(モバイルサファリなど)。
また、localStorage機能が利用できない場合、クッキーに戻ります。しかし、これも正しく動作していません。他のすべてのブラウザでIEでも問題はありません。 クッキーの結果:varname=undefined; expires=Thu, 03 May 2012 01:01:41 GMT.
何が起こっているのですか?私はネット上で答えを見つけられませんでしたので、私はここでそれを聞いて
jQuery.locstore = function(key, val, opt) {
var ls = window.localStorage,
j = window.JSON,
b = !(!ls || !j);
if(!b)
{ return jQuery.cookie(key, val, opt); }
// set
if(arguments.length > 1)
{
var bRem = (val == null),
v = (bRem || typeof val == 'number' || typeof val == 'string')?val:j.stringify(val);
if(bRem)
{ b = ls.removeItem(key); }
else { b = ls.setItem(key, v); }
return b;
}
// get
var v = ls.getItem(key);
if(v != null && typeof val != 'number')
try { v=j.parse(v); } catch(e){}
return v;
};
:
// Picked up from: https://github.com/carhartl/jquery-cookie
// Usage: http://www.electrictoolbox.com/jquery-cookies/
jQuery.cookie = function (key, value, options) {
// key and at least value given, set cookie...
if (arguments.length > 1 && String(value) !== "[object Object]") {
options = jQuery.extend({}, options);
if (value === null || value === undefined) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = String(value);
return (document.cookie = [
encodeURIComponent(key), '=',
options.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// key and possibly options given, get cookie...
options = value || {};
var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
return (result = new RegExp('(?:^|;)' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};
ローカルストレージ:
はここにいくつかのJavascriptコードです。多分、誰かが私にこれを解決する正しい方向への手がかりを与えるでしょうか?
速い返信ありがとう!申し訳ありませんが、情報を取得します。しかし、あなたがあなたのホームスクリーンに(サファリに表示されているウェブページを)置くとき、私はいくつかの違いに気付くので、あなたがAndroidやiPhoneでどのようなレンダリングエンジンを使用するか教えてください。あなたのホームスクリーン上に置かれたアイコンを使ってそれを開くと、それはSafariを使って表示されず、別のビルドインレンダーエンジン(AppleWebKit)で表示されます。次の質問です:Javascriptを自動的にオンにしますか(Safariで起動していても)、それがWebViewのときにlocalStorageをサポートしていますか? – Codebeat
@Erwinus私は、AndroidとiPhoneの両方がレンダリングエンジンとしてWebKitのバージョンを使用していると想定しています。私が理解しているように、さまざまなことが異なってサポートされています。どの機能がサポートされているのか分かりません。 doc引用に述べられているように。それはレンダリングエンジンに依存します。 – JeffryHouser