【问题标题】:Cordova clipboard fails to pasteCordova 剪贴板无法粘贴
【发布时间】:2017-10-10 14:45:17
【问题描述】:

在 ionic 应用页面控制器中,当使用电话号码、电子邮件或其他联系信息的值单击按钮时,会触发这段代码。单击按钮时,文本的值使其成为 toast 并呈现 ok。但是当我然后去 iOS 中的另一个应用程序粘贴文本时,什么都没有粘贴。

async copyToClipboard(text : string){
  try{
    await this.clipboard.copy(text);

    let toast = this.toastCtrl.create({
      message: 'Copied ' + text,
      duration: 2000,
      position: 'bottom',
      dismissOnPageChange : true
    });

    toast.present();
  }
  catch(e){
    console.error(e);
  }
}

【问题讨论】:

  • 我遇到了同样的问题 - 无法粘贴到另一个应用程序中,但是如果我在 Chrome 中打开一些包含文本框的网页,我可以粘贴到那里,所以复制的信息在剪贴板中,但是一些奇怪的限制。
  • 您是否检查过您是否安装了剪贴板科尔多瓦插件?通常,当本机插件在浏览器中而不是在应用程序中工作时,这是因为安装了 npm ionic/native 模块而不是cordova插件。你可以通过运行来做到这一点: ionic cordova plugin
  • @NullIsNot0 认为可能已经找到解决方案,请查看下方。

标签: cordova ionic-framework


【解决方案1】:

看起来这是一个影响 iOS 9、10、11 的问题,所以令人惊讶的是,这个 bug 没有被这样处理。查看插件的 github repo 问题可以找到解决方案。

在插件的 src/ios/CDVClipboard.m 文件中进行以下更改。

替换这一行

[pasteboard setValue:text forPasteboardType:@"public.text"];

用这一行:

pasteboard.string = text;

这应该可以解决问题!

【讨论】:

猜你喜欢
  • 2017-04-16
  • 1970-01-01
  • 1970-01-01
  • 2016-01-30
  • 2017-12-23
  • 2015-07-29
  • 2013-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多