在Multi-Device Hybrid App中加载应用包内容

时间:2014-05-18 07:35:14

标签: javascript cordova visual-studio-cordova

我使用Multi-Device Hybrid App Preview(AFAIK使用cordova)创建跨平台应用,但我无法弄清楚如何加载应用包中包含的内容文件

似乎没有任何Cordova特定的API可以访问app-package内容所以我尝试使用简单的jQuery ajax调用加载它

$.ajax({
    url: "./res/resource.txt", // relative path to www folder
    type: "get",
    contentType: "application/text",
    success: function (text) {
    },
    error: function (e) {
    }
});

但这会导致找不到文件错误。 我也尝试使用像这样的完全限定路径来加载它:

function getPhoneGapPath() {

    var path = window.location.pathname;
    path = path.substr(0, path.length - 10);
    return 'file://' + path;

};

$.ajax({
    url: getPhoneGapPath()+"/res/resource.txt", // relative path to www folder
    type: "get",
    contentType: "application/text",
    success: function (text) {
    },
    error: function (e) {

    }
});

但这会导致错误:拒绝访问。错误。 有关如何访问cordova中应用程序包内容的任何提示?

1 个答案:

答案 0 :(得分:1)

使用相对路径,但丢失./

例如

$.ajax({
    url: "res/resource.txt", // relative path to www folder
    type: "get",
    contentType: "application/text",
    success: function (text) {
    },
    error: function (e) {
    }
});

请记住,如果您导航到更深的路径,例如/ foo /您的相对路径将基于此。

一种解决方案是根据应用程序的绝对路径解析当前路径。

载入时:

var basePath = window.location.href;

然后根据您当前的位置和基本路径构建相对路径。