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

7878阅读
0评论
0点赞

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

原理:

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

 console.log(location.href);  

结果:

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加入以下代码用于调试组装出来的图片地址是否有效

  //调试 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; }

到此完成啦

评论(0)
暂无评论