我正在使用Visual Studio + Cordova + AVD + jQueryMobile。
使用cordova-plugin-camera和cordova-plugin-file我得到一张照片。它返回一条路径:
file:///storage/emulated/0/Android/data/io.cordova.myapp66b652/cache/1491727086753.jpg
我也可以使用resolveLocalFileSystemURL
函数获得更相对的路径:
/1491727086753.jpg
每当我尝试设置现有图片代码的src
时:
var elem = document.getElementById('source-preview');
elem.src = fullCameraPath; // file:///storage/emulated/0/Android/data/io.cordova.myapp66b652/cache/1491727086753.jpg
// or
elem.src = fileEntry.fullPath; ///1491727086753.jpg
// or
$('#source-preview').attr('src', ...);
<img id="source-preview" style="width: 100%;" />
上述方法均未失败,但未修改HTML元素且图像未显示。再次调用.src确实显示了那里被推动的路径。只有.attr('src', ...)
才能说:
Failed to load resource: net::ERR_FILE_NOT_FOUND
表明存在问题。
但是,如果我手动将调试器中的HTML编辑为:
<img id="source-preview" style="width: 100%;" src="file:///storage/emulated/0/Android/data/io.cordova.myapp66b652/cache/1491727086753.jpg" />
图像显示正确。但是,使用cordova-plugin文件提供的较短路径不起作用:
<img id="source-preview" style="width: 100%;" src="file:///1491727086753.jpg" />
这似乎告诉我图像存在,但jQuery Mobile出于某种原因拒绝(作为某种“安全检查”)加载它。
非常感谢任何帮助。
答案 0 :(得分:0)
就我而言,事实证明问题是标记。我的回调函数与<button>
标记内的<form>
相关联。显然,jQuery Mobile的默认行为是刷新页面。我没有注意到这一点,直到我在按下按钮之前更换标签并看到它变回来。因此,由于按钮位于表单中并且没有指向另一个页面,因此它只是一个循环循环,使按钮看起来像什么都不做。
在表单外移动按钮允许所有内容按预期开始工作。