1

所以我有一个很好的 PhoneGap 应用程序(cordova 2.7.0,以及 jquery mobile 1.2.0),它在我的 Android 手机上运行良好。www 文件夹在使用 Firefox、Chrome(通过 wamp)、IE 10 时也能完美运行,而且它在 IE7 上很丑但可用。

现在,当我试图让这个应用程序在我的 Windows Phone 上运行时,我遇到了一些可悲的行为。(7.5) 事情是这样的:

我的 index.html 提示用户输入他的凭据以登录到外部 Web 服务器。此 html 文件包含对我的应用程序使用的 javascript 和 css 文件的所有引用。然后通过使用 ajax 的内容 div 加载不同的页面,其中预先填充了登录表单。

我的 index.html 正文:

<body>
<!-- Begin Page Connect -->
    <div data-role="page" id="index">
        <div data-role="header" data-position="fixed">
              <h1>Connect to Server</h1>
        </div>

        <div data-role="content" >
        <div data-role="collapsible" data-collapsed="false" data-iconpos="none" data-theme="b" data-content-theme="b" id="col1">
            <h3></h3>
            <form id="formConnect" >
                    <label for="server_url" class="ui-hidden-accessible">Url Server:</label>
                    <input type="text" name="server_url" id="server_url" class="required defaultInvalid url" value="" placeholder="http://" data-theme="a" />

                    <label for="username" class="ui-hidden-accessible">Username:</label>
                    <input type="text" name="username" id="username" class="required" value="" placeholder="username" data-theme="a" />

                    <label for="password" class="ui-hidden-accessible">Password:</label>
                    <input type="password" name="pass" id="password" class="required" value="" placeholder="password" data-theme="a" />

                    <button id="cb" disabled type="submit" data-theme="b">Connect</button>
            </form>
        </div>
        </div>

        <div data-role="footer" data-position="fixed">
            <h4></h4>
        </div>
    </div>
    <!-- End Page Connect -->
</body>

现在,当我单击连接时,会发生客户端-服务器身份验证过程:

$.ajax({
    url:server_url,
    type: 'GET',
    data: {page: "login", username: user, password: passhash},
    success: function(data) {
        console.log("LOGIN: SUCCESS");
        $.mobile.changePage("home.html", {transition: "slide"});
    }
});

身份验证成功结束(控制台日志输出“LOGIN: SUCCESS”),然后这段 javascript 发生:

$.mobile.changePage("home.html", {transition: "slide"});

这就是我得到不可调试的“错误加载页面”错误的地方,并且主页没有加载。

我已阅读此问题及其答案,但我在 www 中的所有文件(包括图像)已在其构建操作中设置为“内容”。

另外,在阅读了这篇文章之后,我想尝试在我的 index.html 页面上使用锚点(就在表单之后):

<a href="home.html">link</a>

单击时,弹出相同的“错误加载页面”。但是当我添加 data-ajax="false" 时:

<a href="home.html" data-ajax="false">link</a>

然后 home.html 文件确实会加载,但显然根本不起作用,因为它不包含任何 js 或 css 引用等。

此外,我在模拟器和实际的 Windows Phone (HTC HD7) 上都尝试了所有这些

有人有任何关于如何至少调试这个平均错误消息的信息吗?“错误加载页面”根本不跟我说话。

4

2 回答 2

0

事实证明,使用单独的 html 文件的 changePage 在 Windows Phone 7 上不起作用。(至少在我的项目中)您必须将所有页面放在一个文件中。

所以我只是将所有页面内容重新组合到一个 html 文件中,将每个页面的内容放在其专用 div 中,并带有data-role="page"属性和特定的页面 id,现在changePage("#idOfThePage")可以完美地工作模拟器和实际设备。

于 2013-05-24T14:41:15.147 回答
0

至于回答你关于如何调试它的问题:

你试过用Weinre吗?对于这样的东西,这是一个很好的调试环境。它将使您可以访问控制台和当前桌面浏览器提供的所有 Web 开发工具。

链接: http: //people.apache.org/~pmuellr/weinre/docs/latest/

于 2013-05-15T14:43:33.213 回答