我正在使用Phonegap for Windows Phone 8开发一个应用程序。
我使用jQuery Mobile进行界面设计。
$.mobile.changePage()
无效。页面未被更改。
有没有其他方法可以更改页面?是否还有其他框架来设计移动界面?
$("#btnSearch").bind('click', function() {
showSpinner();
$.mobile.changePage("#pageSearch");
});
答案 0 :(得分:2)
我认为这个问题与WP7中描述的here相同。
检查路径问题:
if($.mobile.path.getLocation("x-wmapp1:/app/www/index.html") != "x-wmapp1:/app/www/index.html")
{
console.log('there is path problem');
}
else
{
console.log('everything is OK with paths');
}
<强> SOLUTION:强>
如github所述,问题是WP7上的路径与其他平台不同。基本上在WP7上,getLocation打印带有双斜线的相对路径,这会导致首先出现此问题。要修复,请打开 jquery.mobile-1.3.1.js 并重构以下内容:
- var uri = url ? this.parseUrl( url ) : location,
- hash = this.parseUrl( url || location.href ).hash;
+ var uri = this.parseUrl( url || location.href ),
+ hash = uri.hash;
和
- return uri.protocol + "//" + uri.host + uri.pathname + uri.search + hash;
+ return uri.protocol + uri.doubleSlash + uri.host + uri.pathname + uri.search + hash;
进行此更改后,请检查是否显示“一切正常”。
PS这是在WP7上测试的,完全解决了我的问题$ .mobile.changePage()。
PS2这个问题在github版本的jQuery上得到修复,虽然我刚刚检查了最新的稳定版本(1.3.2),但不幸的是它没有修复。
此致
Hristo Todorov
答案 1 :(得分:1)
我确实遇到了上面答案中提到的路径问题,但这并没有解决我的问题。我经过大量的试验和错误后发现,这是导致问题的URL开头的协议。
“mypage.html”的更改页面将发送
的Ajax请求x-wmapp0://www/mypage.html
它必须只是
www/mypage.html
我对jQuery Mobile源进行了修改,以操纵字符串来切断协议,现在它完美运行。
要应用此修复程序,请在未缩小 jQuery Mobile js文件中搜索“$ .ajax”并在其之前添加以下内容:
var parts = fileUrl.split("www/");
fileUrl = "www/" + parts[parts.length-1];
这实际上删除了“x-wmapp0:// www /”并重新打开“www /”。仅删除“x-wmapp0://”并不总是有效,因为jQuery Mobile使用url的方式,在某些情况下导致“www / www / ...”。
这证实与Cordova 3.1和3.3一起使用jQuery Mobile 1.3.2
答案 2 :(得分:-1)
我认为该方法已重命名为“pagechange”
http://jquerymobile.com/blog/2011/09/08/jquery-mobile-beta-3-released/#upgrade