应用程序根目录的位置会因目标平台而异,也可能因模拟器和调试容器而异(例如,App Preview 与 App Analyzer)。这是我在项目中查找文件所做的工作:
// getWebPath() returns the location of index.html
// getWebRoot() returns URI pointing to index.html
function getWebPath() {
"use strict" ;
var path = window.location.pathname ;
path = path.substring( 0, path.lastIndexOf('/') ) ;
return 'file://' + path ;
}
function getWebRoot() {
"use strict" ;
var path = window.location.href ;
path = path.substring( 0, path.lastIndexOf('/') ) ;
return path ;
}
我无法对此进行详尽的测试,但到目前为止它似乎正在工作。这是一个示例,我正在使用 Cordova 媒体对象并希望它播放本地存储在项目中的文件。请注意,我必须对 iOS 容器进行“特殊情况”处理:
var x = window.device && window.device.platform ;
console.log("platform = ", x) ;
if(x.match(/(ios)|(iphone)|(ipod)|(ipad)/ig)) {
var media = new Media("audio/bark.wav", mediaSuccess, mediaError, mediaStatus) ;
}
else {
var media = new Media(getWebRoot() + "/audio/bark.wav", mediaSuccess, mediaError, mediaStatus) ;
}
console.log("media.src = ", media.src) ;
media.play() ;
不太确定这是否是您正在寻找的...