我对离子有一些麻烦。在android不到4.4.2 openFileDialog不起作用。在设备上使用android 4.4.2-6.x openFileDialog正在运行。当用户在4.4.2上选择图像时应用程序崩溃。在Android 6.x应用程序崩溃时,只有用户通过图库选择图像。
查看
<ion-list>
<ion-item ng-repeat="stampImage in orderSettings.getStampImages() ">
<a class="item item-thumbnail-left">
<img file-preview="stampImage" />
<h2> {{ stampImage.name }}</h2>
</a>
</ion-item>
</ion-list>
<button id="getRStampFile" style="text-align:right;" class="button button-positive icon-left ion-android-add-circle" ng-click="openFileDialog()">Add image</button>
<input type="file" id="fileRStamp" ng-model="newImage" base-sixty-four-input file-changed hidden />
控制器
$scope.openFileDialog=function() {
console.log('fire! $scope.openFileDialog()');
ionic.trigger('click', { target: document.getElementById('fileRStamp') });
};
Direcive
.directive('fileChanged', function (orderSettings) {
return {
restrict: 'A',
require: '?ngModel',
link: function ($scope, element, attrs, ngModel) {
if (!ngModel) {
return;
}
ngModel.$render = angular.noop;
element.bind('change', function (event) {
ngModel.$setViewValue(event.target.files[0]);
if (event.target.files[0].name.localeCompare('')!=0){
orderSettings.addStampImages(event.target.files[0]);
var file = event.target.files[0];
var reader = new FileReader();
reader.addEventListener("load", function () {
//preview.src = reader.result;
orderSettings.addStampImages64({'filename': file['name'], 'filebody': reader.result});
}, false);
if (file) {
reader.readAsDataURL(file);
}
}
$scope.$apply();
});
}
};
})
当我在浏览器中测试时 - 一切正常。 我做错了什么?