问题描述:首页视频首次加载后保存到了手机本地,再次加载时判断视频文件是否存在,存在则直接读取,不存在则再去服务器下载并保存至本地。Android平台中正常,IOS中一直不能准确判断文件是否存在,经测试即使文件存在也提示不存在。。。
解决办法:经过查询后得知,在传递url参数时需增加个前缀 "file:",代码如下
//判断视频是否存在 plus.io.resolveLocalFileSystemURL("file:" + sd_path, function(entry) { entry.file(function(file) { videoMedia.src = sd_path; videoMedia.autoplay = true; videoMedia.controls = false; videoMedia.load(); }); }, function(e) { //下载视频资源 var dtask = plus.downloader.createDownload(common.global_URL + jsonData[0].vdolink, { "filename": hb_path, "timeout": 10, "retry": 2 }, function(d, status) { if(status == 200) { videoMedia.src = sd_path; videoMedia.autoplay = true; videoMedia.controls = false; videoMedia.load(); } else { //直接跳转首页 mui.openWindow({ url: 'webview_main.html', id: 'webview_main.html', preload: true, show: { aniShow: 'pop-in' }, waiting: { autoShow: false } }); } }); dtask.start(); });
参考链接:https://stackoverflow.com/questions/21980112/cordova-resolvelocalfilesystemurl-success-call-back-failing-on-ios
https://issues.apache.org/jira/browse/CB-6116