8

我正在使用 PhoneGap 和 jQuery Mobile 开发一个应用程序。

我已经完成了应用程序的 android 版本。我正在使用 Adob​​e PhoneGap build 来构建我的应用程序。Android版本运行良好。但现在我正在尝试测试该应用程序的 Windows Phone 8 版本。

app.xap我在 Visual Studio 2012 模拟器中测试了 PhoneGap 构建。似乎 jQuery 手机无法正常工作。出于测试目的,我创建了一个示例应用程序。有两jQuery mobile页。那也行不通。

请帮帮我。任何帮助将不胜感激。谢谢,=) 请告诉我哪里出了问题。

粘贴我的示例代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <!--[if IE 7]><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /><![endif]-->
    <link rel="stylesheet"  href="css/index.css" />
    <link rel="stylesheet"  href="jquery.mobile/jquery.mobile-1.1.0.css" />

    <title>Hello World</title>
</head>
<body>
    <div data-role="page" id="page1">
<div data-theme="a" data-role="header">
    <h3>
        Header
    </h3>
</div>
<div data-role="content">
    <a data-role="button" href="#page2">
        Button
    </a>
</div>
<div data-theme="a" data-role="footer" data-position="fixed">
    <h3>
        Footer
    </h3>
</div>
</div>

    <div data-role="page" id="page2">
<div data-role="content">
    <img src="https://maps.googleapis.com/maps/api/staticmap?center=Madison, WI&amp;zoom=14&amp;size=288x200&amp;markers=Madison, WI&amp;sensor=false"
    width="288" height="200">
    <a data-role="button" href="#page1">
        Button
    </a>
    <div data-role="navbar" data-iconpos="top">
        <ul>
            <li>
                <a href="#page1" data-transition="fade" data-theme="" data-icon="">
                    Button
                </a>
            </li>
        </ul>
    </div>
</div>
</div>
    <script type="text/javascript" src="cordova-2.5.0.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
     <script type="text/javascript" src="jquery.mobile/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="jquery.mobile/jquery.mobile-1.2.0.js"></script>
    <script type="text/javascript">
        app.initialize();
    </script>
</body>
</html>

这是我得到的输出:

在此处输入图像描述

这就是我需要的:

在此处输入图像描述

4

6 回答 6

5

jQuery Mobile 官方不支持 Windows Phone 8。查看支持的平台:http: //jquerymobile.com/gbs/

于 2013-03-06T05:26:47.010 回答
0

如下更改您的页面并确保模拟器可以访问互联网

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <!--[if IE 7]><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /><![endif]-->
    <link rel="stylesheet"  href="css/index.css" />
    <link rel="stylesheet"  href="http://jquery.mobile/jquery.mobile-1.1.0.css" />
    <script type="text/javascript" src="http://jquery.mobile/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="http://jquery.mobile/jquery.mobile-1.2.0.js"></script>
    <script type="text/javascript" src="cordova-2.5.0.js"></script>

    <title>Hello World</title>
</head>
<body>
    <div data-role="page" id="page1">
<div data-theme="a" data-role="header">
    <h3>
        Header
    </h3>
</div>
<div data-role="content">
    <a data-role="button" href="#page2">
        Button
    </a>
</div>
<div data-theme="a" data-role="footer" data-position="fixed">
    <h3>
        Footer
    </h3>
</div>
</div>

    <div data-role="page" id="page2">
<div data-role="content">
    <img src="https://maps.googleapis.com/maps/api/staticmap?center=Madison, WI&amp;zoom=14&amp;size=288x200&amp;markers=Madison, WI&amp;sensor=false"
    width="288" height="200">
    <a data-role="button" href="#page1">
        Button
    </a>
    <div data-role="navbar" data-iconpos="top">
        <ul>
            <li>
                <a href="#page1" data-transition="fade" data-theme="" data-icon="">
                    Button
                </a>
            </li>
        </ul>
    </div>
</div>
</div>

    <script type="text/javascript" src="js/index.js"></script>

    <script type="text/javascript">
        app.initialize();
    </script>
</body>
</html>
于 2013-03-06T05:52:14.207 回答
0

将 Cordova 文件放入 HEAD 并确保它是页面中的第一个 JS 文件:

JQM 在 Windows Phone 上运行良好......我遇到了与您类似的问题,这解决了它。

于 2013-04-02T07:26:51.183 回答
0

事实上,JQuery mobile 可以在 windows phone 8 上正常工作。

加载js文件的正确顺序是:

加载 JQuery 本身;仅加载 JQuery Mobile css 文件;加载您的自定义脚本和 css;如果需要,加载 phonegap (cordova);将 JQuery Mobile 作为最后一个加载。

这个命令在任何设备上都可以正常工作,包括 windows phone 8(设备或 VS2012 模拟器) 通常我在 index.html 的 HEAD 部分加载所有这些东西。如果您有任何疑问,您可以使用 Cordova 模板直接在 VS2012 中测试您的项目,如此处所述

希望这有帮助。

于 2013-04-25T08:52:40.487 回答
0

我在 Windows8 上的 VS2012 中的 WP8 模拟器中看到了同样的问题。如果我制作 jQuery 文件的本地副本,它可以工作。如果我尝试从 CDN 加载它们,它们不会。

<script type="text/javascript" src="js/jquery.1.7.2.min.js"></script>

作品。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

不起作用并且看起来没有样式。

我制作了所有 Jquery 和 Jquery 移动 js 和 CSS 文件的本地副本,我的 JQM UI 看起来与我预期的完全一样。

虽然,我仍然很好奇模拟器的某些白名单功能是否无法正常工作。或者,如果 hyper-v 交换机管理器的配置开箱即用无法正常工作。

于 2013-06-16T05:35:44.850 回答
0

我按照此链接在 VS 2013 中安装了 phonegap 模板。然后我使用 phonegap 模板创建了一个项目并下载了 jquery 文件并将它们包含在我的 html 文件中,它就像一个魅力:) 出于某种原因,对 Jquery 的 CDN 引用不起作用用windows phone 模拟器。

这是您可以参考 Jquery 的顺序,

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <link rel="stylesheet" type="text/css" href="css/index.css" />

    <link rel="stylesheet" href="css/jquery.mobile-1.4.2.css" />
    <!--<script type="text/javascript" src="cordova.js"></script>-->
    <script src="js/jquery-1.11.1.js"></script>
    <script src="js/jquery.mobile-1.4.2.js"></script>
    <title>Hello World</title>
</head>
于 2014-05-03T09:04:00.567 回答