uni-app plus.io.resolveLocalFileSystemURL首次启动程序时 调用不执行
uni-app plus.io.resolveLocalFileSystemURL首次启动程序时 调用不执行
示例代码:
plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), function(entry) {
console.log('plus.io.resolve调用了。。。。')
entry.file(function(file) {
console.log('entry调用了')
var fileReader = new plus.io.FileReader()
fileReader.onload = function(data) {
console.log('plusio执行成功'+JSON.stringify(data))
resolve(data.target.result)
}
fileReader.onerror = function(error) {
console.log(error+'本地路径1:'+JSON.parse(getLocalFilePath(path)))
reject(error+'本地路径:'+JSON.parse(getLocalFilePath(path)))
}
fileReader.readAsDataURL(file)
}, function(error) {
console.log(error+'本地路径2:'+JSON.stringify(getLocalFilePath(path)))
reject(error+'本地路径:'+JSON.stringify(getLocalFilePath(path)))
})
操作步骤:
首次运行程序 不执行
预期结果:
首次运行程序 也执行该方法
实际结果:
首次上传了图片执行方法的时候不执行,返回页面重新进入上传图片的页面就会成功执行
bug描述:
plus.io.resolveLocalFileSystemURL 真机调试 首次启动上传图片以后调用这个方法 不执行
更多关于uni-app plus.io.resolveLocalFileSystemURL首次启动程序时 调用不执行的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app plus.io.resolveLocalFileSystemURL首次启动程序时 调用不执行的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在使用 uni-app 开发应用时,如果你遇到 plus.io.resolveLocalFileSystemURL 在首次启动程序时不执行的问题,可能是由于以下几个原因导致的:
1. plus 对象未初始化
plus 对象是 HTML5+ 提供的扩展 API,它需要等待 plusready 事件触发后才能使用。如果你在 plus 对象未初始化时调用 plus.io.resolveLocalFileSystemURL,可能会导致函数不执行。
解决方案:
确保在 plusready 事件触发后再调用 plus.io.resolveLocalFileSystemURL。
document.addEventListener('plusready', function() {
plus.io.resolveLocalFileSystemURL('_www/yourfile.txt', function(entry) {
console.log('File resolved:', entry);
}, function(error) {
console.error('Error resolving file:', error);
});
}, false);
2. 路径问题
resolveLocalFileSystemURL 需要正确的文件路径。如果路径不正确,函数可能不会执行或返回错误。
解决方案:
确保你传入的路径是有效的。通常,_www 是应用的根目录。
plus.io.resolveLocalFileSystemURL('_www/yourfile.txt', function(entry) {
console.log('File resolved:', entry);
}, function(error) {
console.error('Error resolving file:', error);
});
3. 权限问题
在某些情况下,可能需要特定的权限才能访问文件系统。如果权限不足,可能会导致函数不执行。
解决方案:
确保应用有足够的权限访问文件系统。你可以在 manifest.json 中配置相关权限。
{
"permissions": {
"FileSystem": {
"description": "Access to the file system"
}
}
}
4. 异步问题
resolveLocalFileSystemURL 是异步操作,如果你在异步操作完成之前执行了某些依赖它的代码,可能会导致问题。
解决方案: 确保你在回调函数中处理后续逻辑。
plus.io.resolveLocalFileSystemURL('_www/yourfile.txt', function(entry) {
console.log('File resolved:', entry);
// 在这里处理后续逻辑
}, function(error) {
console.error('Error resolving file:', error);
});
5. 首次启动时的延迟
在首次启动应用时,plus 对象可能需要一些时间来初始化。如果立即调用 resolveLocalFileSystemURL,可能会导致函数不执行。
解决方案:
你可以设置一个延迟,确保 plus 对象已经初始化。
setTimeout(function() {
plus.io.resolveLocalFileSystemURL('_www/yourfile.txt', function(entry) {
console.log('File resolved:', entry);
}, function(error) {
console.error('Error resolving file:', error);
});
}, 1000); // 延迟1秒
6. 调试信息
如果以上方法都无法解决问题,建议添加更多的调试信息,检查是否有其他潜在的错误。
document.addEventListener('plusready', function() {
console.log('plus is ready');
plus.io.resolveLocalFileSystemURL('_www/yourfile.txt', function(entry) {
console.log('File resolved:', entry);
}, function(error) {
console.error('Error resolving file:', error);
});
}, false);

