欢迎光临
我们一直在努力

apicloud获取项目绝对路径与拼装文件绝对路径

apicloud貌似不支持/代表项目根目录,于是很多深入目录写的时候,公共文件定义文件目录就有些麻烦,一级与二级路径写法是不一样的,于是封装了个获取文件根目录的方法与拼装方法来使用,在此记录下

原理:

通过各级目录的html里面 输出 location.href

<script>
console.log(location.href);
</script>

结果:

file:///storage/emulated/0/UZMap/wgt/A6051165374466/index.html

file:///storage/emulated/0/UZMap/wgt/A6051165374466/html/frame0.html

file:///storage/emulated/0/UZMap/wgt/A6051165374466/html/frame1.html

我们可以发现一个规律,那就是 file:///storage/emulated/0/UZMap/wgt/A6051165374466/ 是相同的,当然不同项目,不同手机这个值不相同,但是 A6051165374466 是你的项目APP_ID,你自己配的,它是不会变的。

于是我们可以通过 APP_ID(A6051165374466,api.appId 可以获取) 进行字符串分隔

location.href.split("/A6051165374466/");

可以得到  file:///storage/emulated/0/UZMap/wgt,那么我们再拼接 A6051165374466 ,与我们想拼接的 地址如:/image/loading_more.gif

file:///storage/emulated/0/UZMap/wgt/A6051165374466/image/loading_more.gif

ok,原理讲完了,上代码

html加入以下代码用于调试组装出来的图片地址是否有效

<img src="" id="myimg" width="100%" />
//调试

var img = get_root_path()+'/image/loading_more.gif';//第一种写法(少封装一个函数)

var img = file_path('/image/loading_more.gif');//拼装写法(推荐:方便后期统一修改)

document.getElementById('myimg').src = img;

console.log(img);

//组装文件路径
function file_path(file){
return get_root_path()+file;
}

//获取绝对路径
function get_root_path(){
var APP_ID = api.appId;//如:A6051165374466;
var arr = location.href.split("/"+APP_ID+"/");
var root_path = arr[0]+"/"+APP_ID;
return root_path;
}

到此完成啦

未经允许不得转载:小罗同学 » apicloud获取项目绝对路径与拼装文件绝对路径

分享到:更多 ()