Windows phone 7 jQuery Mobile changePage()在Windows Phone中不工作

Windows phone 7 jQuery Mobile changePage()在Windows Phone中不工作,windows-phone-7,cordova,jquery-mobile,Windows Phone 7,Cordova,Jquery Mobile,我正在为Windows Phone 8使用Phonegap开发一个应用程序 我使用jQuery Mobile进行界面设计 $.mobile.changePage()不工作。页面未被更改 有没有其他方法可以更改页面?是否有其他框架来设计手机界面 $("#btnSearch").bind('click', function() { showSpinner(); $.mobile.changePage("#pageSearch"); }); 我想这个方法被重命名为“pagechang

我正在为Windows Phone 8使用Phonegap开发一个应用程序

我使用jQuery Mobile进行界面设计

$.mobile.changePage()
不工作。页面未被更改

有没有其他方法可以更改页面?是否有其他框架来设计手机界面

$("#btnSearch").bind('click', function() {
    showSpinner();
    $.mobile.changePage("#pageSearch");
});

我想这个方法被重命名为“pagechange”


我认为这个问题与WP7中描述的问题相同

检查路径问题:

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');
}
解决方案:

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');
}
正如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;
以及:

进行此更改后,复选框应显示“一切正常”

PS这是在WP7上测试的,并用$.mobile.changePage()完全修复了我的问题

PS2这个问题在jQuery的github版本上得到了修复,尽管我刚刚检查了最新的稳定版本(),但不幸的是,它没有在那里得到修复

问候,


Hristo Todorov

我确实遇到了上述答案中提到的路径问题,但这并没有解决我的问题。经过多次尝试和错误,我发现是URL开头的协议导致了问题

“mypage.html”的更改页面将发送一个Ajax请求

x-wmapp0://www/mypage.html
它需要公正

www/mypage.html
我对jQuery移动源代码进行了修改,以操纵字符串来切断协议,现在它可以完美地工作

要应用修复程序,请在未缩小的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

是否可以发布调用
$.Mobile.changePage()
?该代码在Android上运行良好。当前版本之前,jQuery Mobile不支持Windows 8 Mobile版本。但是你的代码是正确的。主要的问题是不支持的操作系统。我认为有一些东西可以帮助你。我记得WP7在phonegap应用程序中的changepage功能有问题。看看这个链接:和google:jquerymobilechangepage不工作wp7@Gajotres如果支持Windows Phone 7.5-7.8,Windows Phone 8肯定也是如此(特别是因为支持Windows 8 RT,并且两者都使用“移动优化”IE10)。我肯定它没有列在b/c清单上,他们自己也不想做质量保证。该事件已重命名-OP询问的是changePage方法,该方法肯定仍然存在于JQM.Wowza中,这是我在Windows Phone 8中的固定changePage。有没有可能出现在1.3.3或操作系统中?非常感谢,这对我来说是一个巨大的痛苦!我是否需要为Windows Phone和iOs/Android保留单独的jQuery手机版本(因为我没有这个问题),我已经为我的手机保留了一个单独的版本。