我可能有一个星期来解决这个问题。
当我在表单中使用输入[type =“file”] 字段时,在 Ionic Lab 中,它可以正常工作。在 Android模拟器中,它可以正常工作。但是,当我在手机中运行应用程序时,我点击/点击该字段,没有任何反应。按下按钮,但不显示filepicker对话框。
我的输入看起来像:
<input class="" id="image" type="file" name="image" ng-model="data.image" file="file"onchange="angular.element(this).scope().fileNameChanged(this.files)" style="display:none;" />
我尝试了不同的东西,在JS中添加了一个触发click事件的按钮:
<button type="button" class="button icon ion-filing" ng-click="openFileDialog()">Select</button>
方法 openFileDialog()仅执行此操作:
$scope.openFileDialog = function() {
alert('Test Open File DIalog');
ionic.trigger('click', { target: document.getElementById('image')});
};
单击按钮时会显示警报,但不会触发事件。同样,它在Ionic Lab和模拟器中工作正常,但不在我的设备中。我也尝试过测试这个项目:
https://github.com/krystiangw/filepicker-ionic-example
但结果是一样的。
编辑1:
太令人沮丧了。我无法让它发挥作用。
我尝试制作一个简单的空白项目,只有:
<ion-content>
<input type="file" />
</ion-content>
没有别的。再次,在 Ionic Lab 和模拟器中,打开文件选择对话框没有问题,但当我在手机中运行时:
ionic run android --device
什么都没发生。我不知道是不是我的手机还是有些限制。
编辑2:
经过一番调查后,我发现了这个问题,没有解决方案:
https://issues.apache.org/jira/browse/CB-5294
我的Android版本 4.4.2 但是,这在Android版本中是否永远不会有效?有人知道如果至少它已在以后的版本中修复过吗?我的模拟器有 Android 6 ,就我可以测试而言,它可以正常工作。