Ibm mobilefirst 如何加载本地资源?

Ibm mobilefirst 如何加载本地资源?,ibm-mobilefirst,Ibm Mobilefirst,如何从Worklight访问资源(存储在项目文件夹中的CSS、JS和图像)? 例如,是否存在指向本地内部Worklight资源的绝对路径(Worklight URL)?或者是从文件系统加载资源的另一种方法? (我尝试从本地加载资源的原因是为了加快页面加载速度) 编辑:从评论中的讨论来看,只查看根设备中的文件系统就足够了 编辑2:如果您正在寻找的是加载资源的最快选项,那么您不应该从远程加载开始。将index.html放入设备中。您不能既使用门户远程加载内容,又期望快速加载时间。根据定义,通过远程加

如何从Worklight访问资源(存储在项目文件夹中的CSS、JS和图像)? 例如,是否存在指向本地内部Worklight资源的绝对路径(Worklight URL)?或者是从文件系统加载资源的另一种方法? (我尝试从本地加载资源的原因是为了加快页面加载速度)


编辑:从评论中的讨论来看,只查看根设备中的文件系统就足够了

编辑2:如果您正在寻找的是加载资源的最快选项,那么您不应该从远程加载开始。将index.html放入设备中。您不能既使用门户远程加载内容,又期望快速加载时间。根据定义,通过远程加载内容,您将体验到可能的速度减慢


Worklight不提供此路径

理论上,您可以通过使用访问应用程序的沙箱(从而访问web资源)

您可以获得对设备文件系统的引用:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
从那里,您可以访问应用程序的沙箱并找到所需的文件。因为你是将资源放在应用程序中的人,所以你应该知道你把资源放在了哪里

function gotFS(fileSystem) {
   fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail);
}
要尝试并找出内容的路径,您可以在设备上设置根目录,然后单击。这样,您应该能够找到您放置的文件的路径。

我在运行Android环境的Worklight中访问本地文件的方法是使用
XMLHttpRequest

//Works only on Android
function prendiCaricaRisorsaWorklight(percorsoPiuNomeFile) {

    var xmlhttp = new XMLHttpRequest();
    var risposta = "";
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4
                && (xmlhttp.status == 200 || xmlhttp.status == 0)) {
            risposta = xmlhttp.responseText; 
            alert(risposta); 
        }
    }
    xmlhttp.open("GET", "file:///android_asset/www/default/"
            + percorsoPiuNomeFile, true);
    xmlhttp.send(null);
}
用法示例:

prendiCaricaRisorsaWorklight("css/cssInterno.css");
prendiCaricaRisorsaWorklight("js/jsInterno.js");

这在Android上显示了一个关于文件内容的警报。

如果您提供一个您试图加载的内容的示例,会更容易一些……我试图从远程页面加载本地资源。请定义“远程页面”。如何在Worklight应用程序中加载远程页面?我正在使用主文件
http://something:10039/wps/myportal/otherthings
评论不用于扩展讨论;这段对话已经结束。