ios 11.2.x 上的 ionic cordova 中的 Fire click 事件不起作用

Posted

技术标签:

【中文标题】ios 11.2.x 上的 ionic cordova 中的 Fire click 事件不起作用【英文标题】:Fire click event in ionic cordova on ios 11.2.x doesn't work 【发布时间】:2018-03-06 20:01:18 【问题描述】:

我有一个使用 ionic 的应用程序。 我有一个打开文件浏览器的按钮:

html 页面:

<input class="input-file" name="imgToUpload" id="imgToUpload" type="file"
         #imgToUpload  [(ngModel)]="message.file" (change)="onFileChange($event)" accept="image/gif, image/jpeg, image/png">
    <div ion-button block large (click)="openFileBrowser($event)" style="background-color:#39D2B4;">
      <ion-icon name="camera"></ion-icon>
    </div>

在我的 .ts 文件中,我有 openFileBrowser 方法:

openFileBrowser(event:any)
event.preventDefault();
let element : HTMLElement = document.getElementById('imgToUpload') as HTMLElement;
element.click();

在更新 ios 11.2.6 之前,这个方法被触发没有问题。 从 iOS 11.2.6 开始,click() 没有触发。

有人遇到过这个问题吗? 我该如何解决? 谢谢。

【问题讨论】:

【参考方案1】:

我已经通过这种方式解决了,用 div 模拟按钮:

<div class="fileUpload" ion-button>
  <input class="upload" type="file" (change)="selectImagem($event)" multiple accept="image/*"/>
</div>

在css中,我隐藏了输入文件

.fileUpload 
    position: relative;
    overflow: hidden;
    background-color: transparent;
    color: #488aff;
    box-shadow: none;

    input.upload 
      position: absolute;
      top: 0;
      right: 0;
      margin: 0;
      padding: 0;
      font-size: 20px;
      cursor: pointer;
      opacity: 0;
      filter: alpha(opacity=0);
    
  

【讨论】:

以上是关于ios 11.2.x 上的 ionic cordova 中的 Fire click 事件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

IOS 10 或 11 上的 Ionic 3 标头高度

APP IONIC3 angular4

Ionic & Angular - iOS 上的 Ion 日期时间设计

Ionic 3.x:iOS 上的推送通知不起作用(适用于 Android?) Ionic Native Plugin Push

ios 上的 Cordova 和 Ionic - 设备插件不起作用

如何识别 ionic 和 ios 上的 401 和 408(超时)错误?