我正在使用Ionic教程来使用Cordova Camera API。 http://learn.ionicframework.com/formulas/cordova-camera/
尽管我可以说一切都与Camera API功能正常工作,但我无法将我的图像显示回视图。
我能够返回文件URI,但是当我尝试将其放到ng-src
时,我在视图中什么也得不到。我假设应用程序/代码无法访问文件位置?
我的配置:
.config(function($stateProvider, $urlRouterProvider, $compileProvider) {
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|blob|content):|data:image\//);
...
我的控制器中的功能:
$scope.getPhoto = function() {
Camera.getPicture().then(function(imageURI) {
console.log(imageURI);
$scope.cameraPic = imageURI;
}, function(err) {
$scope.cameraPic = "error";
console.err(err);
});
};
我的观点:
<ion-view>
<ion-content>
<div class="form-group padding-top">
<button class='button button-positive' data-ng-click="getPhoto()">
Take Photo
</button>
</div>
<div class="item item-image">
<img ng-src="{{cameraPic}}"/>
</div>
{{cameraPic}}
</ion-content>
</ion-view>
这似乎是本教程推荐的方法,也在this thread上重复。听起来它不应该使用Cordova文件服务实现。 I have found one such implementation我想我可以使用,但我在这里遗漏了什么?
修改
使用chrome:// inspect /#devices,我可以查看Webview / Console。我还重建了这个项目,看看是否会有所帮助。
绝对看起来像是本地文件访问问题。
答案 0 :(得分:2)
事实证明,这是使用模拟器所特有的问题。我终于在ngCordova项目中找到了以下内容:
注意:相机API仅适用于真实设备,而不适用于 仿真器。
来源:http://ngcordova.com/docs/plugins/camera/
这使我在使用USB调试器的实际设备上测试代码,其中文件由应用程序访问并按预期与视图共享。这应该被视为图书馆的一个怪癖。