如何使用Ionic Framework访问Android设备上的文件

时间:2015-02-25 23:00:32

标签: android cordova ionic-framework ionic

我正在使用Ionic教程来使用Cordova Camera API。 http://learn.ionicframework.com/formulas/cordova-camera/

尽管我可以说一切都与Camera API功能正常工作,但我无法将我的图像显示回视图。

我能够返回文件URI,但是当我尝试将其放到ng-src时,我在视图中什么也得不到。我假设应用程序/代码无法访问文件位置?

For demonstration I output the data bind twice - once in ng-src and once in plain text.

我的配置:

.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。我还重建了这个项目,看看是否会有所帮助。

绝对看起来像是本地文件访问问题。

enter image description here

1 个答案:

答案 0 :(得分:2)

事实证明,这是使用模拟器所特有的问题。我终于在ngCordova项目中找到了以下内容:

  

注意:相机API仅适用于真实设备,而不适用于   仿真器。

来源:http://ngcordova.com/docs/plugins/camera/

这使我在使用USB调试器的实际设备上测试代码,其中文件由应用程序访问并按预期与视图共享。这应该被视为图书馆的一个怪癖。