cordova.js 文件的动态包含在 Windows Phone 7 中不起作用?
Posted
技术标签:
【中文标题】cordova.js 文件的动态包含在 Windows Phone 7 中不起作用?【英文标题】:Dynamic inclusion of cordova.js file is not working in Windows Phone 7? 【发布时间】:2012-05-31 05:19:59 【问题描述】:我正在开发一个支持 android、BlackBerry、iphone 和 Windows Phone 7 的电话间隙应用程序。仅在 windows phone 7 中无法进行互联网连接检查。有单独的 cordova。 js 文件,因此我将这些文件保存在具有相应名称的不同文件夹中,例如 android、iphone 等。我根据正在加载应用程序的设备类型动态加载 js 文件,比如应用程序是否正在运行Android 我正在加载 android/cordova.js。它在除 Windows Phone 之外的所有平台上都能正常工作。 如果我直接在 head 标记中加载 js 文件,则连接检查在 windows phone 7 中是 工作,因为动态加载 js 文件不起作用。下面我会给出代码sn-p(文件路径正确我已经检查过了)
<script type="text/javascript" charset="utf-8">
function test()
$('head').append('<script type="text/javascript" src="' + filePath + '"' + '></' + 'script>');
test();
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady()
offLineModeTest();
function offLineModeTest()
try
var networkState = navigator.network.connection.type;
if (Connection.NONE == networkState || Connection.UNKNOWN == networkState)
//do something......
catch(err)
</script>
【问题讨论】:
【参考方案1】:这是由于在 IEMobile 中以这种方式加载时不执行 javascript 的方式。
没有解决此问题,但等待操作系统更新或直到 Cordova 的所有版本都使用相同的 js 文件。
作为替代方案,您是否可以尝试始终包含 hte WP7 版本,然后将其删除并在其他平台上加载适当的版本。
【讨论】:
【参考方案2】:对 Cordova 的建议是始终将其直接加载到 HEAD 标记中,并将其作为您加载的第一个脚本。如果您不这样做,您将面临事件无法正确触发的风险,因为它需要连接到某些加载事件本身。
为什么不构建您的项目,以便您可以使用相对路径静态加载特定于平台的 JS 文件,而不是动态加载?这就是我用于 Android 和 ios 应用程序的方法。
编辑
This answer 显示 JS 文件的文件结构和相对包含。
【讨论】:
嗨!我遇到了同样的问题。我们的应用程序有一个共同的 www 基础,并在两个平台上同时开发。现在我们尝试动态包含正确的cordova.js,但这不起作用。我对你的方法很感兴趣。在这种情况下,相对路径是什么意思?以上是关于cordova.js 文件的动态包含在 Windows Phone 7 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章