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