1

我决定尝试使用 Weinre 来帮助我调试我正在尝试为 Windows Phone 8 构建的 Cordova 应用程序;可悲的是,我遇到了一个奇怪的问题,Windows Phone 8 Emulator 可以连接到我的本地 weinre 配置,然后几秒钟后消失......我在另一个 Windows 2012 上尝试了这个,我似乎遇到了同样的事情。我什至尝试使用基本的 Cordova 模板。

因此,当我从 VS2012 调试我的应用程序时,模拟器启动并部署应用程序。我知道我不能使用 LOCALHOST,所以我的脚本引用是我的计算机或服务器的 IP 地址。应用程序启动,我可以转到 Weinre 控制台,我看到我有一个连接。但几秒钟后,连接消失了。似乎模拟器无法保持与 weinre 的持续连接......模拟器上是否有某种带宽限制器会切断我的连接?有没有更好的方法来远程调试我应该使用的 Win Phone 8 应用程序?

更新:我也在我的诺基亚 920 上试过这个,我看到同样的事情发生了......

4

1 回答 1

1

更新

Weinre 已打补丁,现在应该可以正常工作了。我建议尝试来自 npm https://npmjs.org/package/weinre的最新版本

npm install -g weinre
weinre --boundHost -all-

原始答案

似乎 Cordova 特定的XHR 补丁打破了 weinre 逻辑。我在目标脚本中看到 js 错误。

我已经为 weinre target-script.js 添加了一个快速修复,因此您可以将 \target\target-script.js(或 target-script-min.js)替换为以下文件,它应该可以工作

http://dl.dropbox.com/u/23085338/weinre-target-script-min-patched.js

重要。weinre js必须在cordova.js之前添加

但我建议使用以下超级简单的方法将 weinre 连接到您的页面,无需任何本地设置 - 只需将其添加到您的页面

<script type="text/javascript">
window.WeinreServerId = "wp_test"; // <-- your unique identifier on the server below
window.WeinreServerURL = "http://debug.phonegap.com"; // <-- weinre server to use

// To open debugger use the following uri format - WeinreServerURL/client/#WeinreServerId
// for example http://debug.phonegap.com/client/#wp_test

</script>

<script type="text/javascript" src="http://dl.dropbox.com/u/23085338/weinre-target-script-min.js"></script>

有关一般故障排除,请参阅Windows Phone 8 IE10 Javascript 调试

更新

另一个应该有效的快速修复是替换(在 target-script-min.js 或 target-script.js 中)

xhr = new XMLHttpRequest();

xhr = (XMLHttpRequest.noConflict ? new XMLHttpRequest.noConflict() : new XMLHttpRequest());
于 2013-02-11T11:58:51.523 回答