如何从Worklight访问资源(CSS,JS和存储在项目文件夹中的图像)? 例如,是否存在指向本地内部Worklight资源的绝对路径(Worklight URL)?或者也许是从文件系统加载资源的另一种方法? (我试图从本地加载资源的原因是为了加快页面加载速度)
答案 0 :(得分:2)
编辑:通过评论中的讨论,听起来只需查看root设备中的文件系统就足够了。
编辑2:如果您要查找的是加载资源的最快选项,则不应该开始远程加载它们。将index.html放在设备中。您不能同时使用Portal远程加载内容,和期望快速加载时间。根据定义,通过远程加载内容,您将遇到可能的减速。
Worklight不提供此路径。
从理论上讲,您可以使用Cordova File API访问应用程序的沙箱(以及Web资源)。
您可以获得对设备文件系统的引用:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
从那里,您可以访问应用程序的沙箱并找到所需的文件。由于您是将资源放入应用程序的人,因此您应该知道放置它的位置。
function gotFS(fileSystem) {
fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail);
}
要试验并找出内容的路径,您可以将设备设为root,然后via Eclipse you could traverse the file system。这样您就可以找到所放置文件的路径。
答案 1 :(得分:0)
我设法访问运行 Android 环境的 Worklight 中的本地文件only way正在使用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 上显示包含文件内容的提醒。