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 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

打开没有java或cordova js的Android相机

HealthTap 是使用 phonegap cordova 开发的吗?

在 chrome 中运行时,cordova.js 不可用

静态库和动态库的使用

离子不加载cordova.js文件

IBM Worklight 6.0 - 如何操作 Cordova.js 文件?