6

我正在使用 Phonegap for Windows Phone 8 开发应用程序。

我使用 jQuery Mobile 进行界面设计。

$.mobile.changePage()工作。页面没有被改变。

有没有其他方法可以改变页面?是否有任何其他框架来设计移动界面?

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

3 回答 3

2

我认为这个问题与此处描述的 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');
}

解决方案:

如 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 这个问题在 jQuery 的 github 版本中得到了修复,虽然我刚刚检查了最新的稳定版本(1.3.2),不幸的是它没有在那里修复。

问候,

赫里斯托·托多罗夫

于 2013-07-24T10:29:44.667 回答
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/”重新打开。由于 jQuery Mobile 处理 url 的方式,仅删除“x-wmapp0://”并不总是有效,在某些情况下会导致“www/www/...”。

这已确认可与 Cordova 3.1 和 3.3 以及 jQuery Mobile 1.3.2 一起使用

于 2013-11-14T17:25:26.320 回答
-1

我认为该方法已重命名为“pagechange”

http://jquerymobile.com/blog/2011/09/08/jquery-mobile-beta-3-released/#upgrade

于 2013-06-04T14:03:09.290 回答