OSX Lion の 64 ビット Eclipse Juno で Worklight Studio 6.0.0.20130917-1749 を使用しています。
WL.Client.invokeProcedure() または WL.Logger.debug() を jQueryMobile (1.3.1) pagebeforeshow ハンドラに呼び出すと、リッチ ページ エディタのデザイン部分がそのページに切り替えようとするとハングします。
$("#myPage").on("pagebeforeshow", function(){WL.Logger.debug("loading myPage...");});
モバイル ナビゲーション ビューで myPage をダブルクリックすると、ページが表示されず、アプリ内の他のページに切り替えることも、デザイン ペインで何かを行うこともできません。更新ボタンはそれを修正しません (同じページを読み込もうとするだけで、開始した場所に戻ります) 私ができる唯一のことは、html ファイルを閉じて再度開くことです。
これは、RPE で実行されるコードで WL.StaticAppProperites の定義が欠落していることが原因のようです。クロムの下でアプリの共通リソースの html ソースを見ると、次の定義が表示されます。
<script>
// Define WL namespace.
var WL = WL ? WL : {};
/**
* WLClient configuration variables.
* Values are injected by the deployer that packs the gadget.
*/
WL.StaticAppProps = {
"APP_DISPLAY_NAME": "MyApp",
"APP_ID": "MyApp",
"APP_SERVICES_URL": "\/MyApp\/apps\/services\/",
"APP_VERSION": "1.0",
"ENVIRONMENT": "preview",
"LOGIN_DISPLAY_TYPE": "popup",
"LOGIN_POPUP_HEIGHT": 610,
"LOGIN_POPUP_WIDTH": 920,
"PREVIEW_ENVIRONMENT": "common",
"WORKLIGHT_PLATFORM_VERSION": "6.0.0",
"WORKLIGHT_ROOT_URL": "\/MyApp\/apps\/services\/api\/MyApp\/common\/"
};</script>
さまざまな環境用に生成された HTML には、同様の定義があります。しかし、weinre を見ると、RPE に表示される html に対応するスクリプトが挿入されていないことがわかります。WL.StaticAppProperties の定義がないため、worklight.js のコードが WL.Utils の定義の直前で失敗します。
WL.StaticAppProps = {} を追加して、worklight.js をロードするために挿入されるコードの前にこれを追加する方法はありますか?
この問題の他の回避策はありますか?