こんにちは、IBM Worklight v 5.0.6 での WP 7.5 アプリケーション開発に問題があります。実験には、ftp: //public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v506/wl_gs_all_samples.zipのMultiPageApp Project を使用しました。
私が抱えていた多くの問題があります:
最初の問題
コードを編集せずにワークライトで WP 7.5 環境を構築しました。次に、エミュレータ 7.1 256MB を使用して MS Visual Studio 2012 で実行します。問題は、MultiPageApplication.html からのコンテンツのみが表示されることです。
MultiPageApplication.html
<!DOCTYPE html>
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<title>MultiPageApplication</title>
<link href="wlclient/css/wlclient.css" rel="stylesheet">
<link href="images/favicon.png" rel="shortcut icon">
<link href="images/apple-touch-icon.png" rel="apple-touch-icon">
<link href="css/MultiPageApplication.css" rel="stylesheet">
<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": "MultiPageApplication",
"APP_SERVICES_URL": "http:\/\/169.254.17.188:8080\/apps\/services\/",
"APP_VERSION": "1.0",
"ENVIRONMENT": "windowsphone",
"LOGIN_DISPLAY_TYPE": "embedded",
"WORKLIGHT_ROOT_URL": "http:\/\/169.254.17.188:8080\/apps\/services\/api\/MultiPageApplication\/windowsphone\/"
};</script>
<script src="wlclient/js/cordova.js"></script>
<script src="common/js/wljq.js"></script>
<script src="common/js/base.js"></script>
<script src="wlclient/js/messages.js"></script>
<script src="common/js/wlcommon.js"></script>
<script src="wlclient/js/diagnosticDialog.js"></script>
<script src="wlclient/js/deviceAuthentication.js"></script>
<script src="wlclient/js/window.js"></script>
<script src="wlclient/js/worklight.js"></script>
<script src="wlclient/js/wlclient.js"></script>
<script src="wlclient/js/wlfragments.js"></script>
<script src="wlclient/js/encryptedcache.js"></script>
<script src="wlclient/js/jsonstore/jsonstore.js"></script>
<script src="wlclient/js/challengeHandlers/antiXSRFChallengeHandler.js"></script>
<script src="wlclient/js/challengeHandlers/authenticityChallengeHandler.js"></script>
<script src="wlclient/js/challengeHandlers/deviceAuthAutoProvisioningChallengeHandler.js"></script>
<script src="wlclient/js/challengeHandlers/deviceAuthNoProvisioningChallengeHandler.js"></script>
<script src="wlclient/js/challengeHandlers/remoteDisableChallengeHandler.js"></script>
<script src="wlclient/js/wlgap-wp7.js"></script><script>window.$ = window.jQuery = WLJQ;</script>
</head>
<body id="content" style="display: none">
<div id="AppBody">
<!-- This is static header, it will be shown always -->
<div id="header">
<h1>Multi page app</h1>
</div>
<!-- This is a placeholder for dynamic page content -->
<div id="pagePort"></div>
</div>
<script src="js/initOptions.js"></script>
<script src="js/MultiPageApplication.js"></script>
<script src="js/messages.js"></script>
</body>
</html>
MultiPageApplication.js
var pagesHistory = [];
var currentPage = {};
function wlCommonInit(){
$("#pagePort").load("pages/MainPage.html", function(){
currentPage.init();
});
}
最後に、jquery load API の URL を (MS Visual Studio 2012 で手動で) から
$("#pagePort").load("pages/MainPage.html",
に
$("#pagePort").load("default/pages/MainPage.html",
コードは機能していますが、別の問題は
native/www 内のファイルは、アプリケーションがビルドされるたびに再生成されるため、これらのファイルに加えられた変更はすべて失われます。
URL を正しく生成するにはどうすればよいですか?
2番目の問題
「Load Page1」ボタンを押して、MainPage.html から Page1.html にページを移動したい場合、
MultiPageApplication.js のメソッド「init」が機能しないため、Page1.html はロードされません。そして、MS Visual Studio 2012 の出力ログから次のエラーを受け取りました。
Log:"Error in error callback: File564653615 = TypeError: Object doesn't support property or method 'init'"
jQueryMobile jquery-1.9.1.min.js と jquery.mobile-1.3.2.min.js で Worklight に埋め込まれている jQuery を変更してみましたが、同じ問題が発生しました。
では、どうすればこの問題を解決できますか? Worklight に組み込まれている jQuery が Visual Studio で動作しないためでしょうか?
ありがとう