无法在PhoneGap Ionic IOS中复制/粘贴

时间:2014-11-28 12:01:50

标签: ios cordova ionic-framework

我正在使用PhoneGap在IOS中构建应用程序,这几乎已经完成。

我遇到了一个小问题。用户似乎无法在输入字段中复制/浏览其内容。

我正在使用

  • Cordova 3.6.3
  • Ionic Framework 1.2.8
  • IOS 8.1.1

4 个答案:

答案 0 :(得分:14)

尝试添加此css

   input, textarea {
        -webkit-user-select: auto !important;
        -khtml-user-select: auto !important;
        -moz-user-select: auto !important;
        -ms-user-select: auto !important;
        -o-user-select: auto !important;
        user-select: auto !important;  
  }

我认为离子包括一些css以避免复制/粘贴,因为通常应用程序不允许您复制其内容

答案 1 :(得分:1)

基于@jcesarmobile回答。这对我有用。 Ionic 2,beta 10。

 .selectable{
    -webkit-user-select: auto;
    -khtml-user-select: auto;
    -moz-user-select: all;
    -ms-user-select: auto;
    -o-user-select: auto;
    user-select: auto; 
  }

答案 2 :(得分:0)

Kludgy,仅限台式机,但我使用的是这样的:

  .directive('selectable', [function () {
    return {
      restrict: 'A',
      priority: 2000,
      link: function (scope, ele, attrs) {
        var element = ele[0];
        function leave() {
          element.blur();
          element.setAttribute('contenteditable', 'false');
        }
        function keydown(e){
          switch(e.which) {
            case 33: // pageup
            case 34: // pagedown
            case 35: // end
            case 36: // home
            case 37: // left
            case 38: // up
            case 39: // right
            case 40: // down
            case 16: // shift
            case 17: // ctrl
            case 91: // meta
              return;

            default:
              //CTRL-A /CTRL-C?
              if((e.keyCode === 'C'.charCodeAt(0) || e.keyCode === 'A'.charCodeAt(0)) && (e.ctrlKey || e.metaKey)) {
                return;
              }
              console.log(e);
              break;
          }

          leave();
        }
        function mouseDown(){
          element.setAttribute('contenteditable', 'true');
        }
        element.addEventListener('mousedown', mouseDown);
        element.addEventListener('keydown', keydown);
        element.addEventListener('cut', leave);
        element.addEventListener('paste', leave);
        ele.on('$destroy', function () {
          element.removeEventListener('mousedown', mouseDown);
          element.removeEventListener('keydown', keydown);
          element.removeEventListener('cut', leave);
          element.removeEventListener('paste', leave);
        });

      }
    };
  }])

如果你愿意编辑ionicXXX.js,你也可以在他们检查isContentEditable的任何地方检查一个类或属性......

答案 3 :(得分:0)

我遇到了同样的问题,并在我的应用中使用加载面板

@Adam提供的css修复工作

.backdrop { display: none; } 
.backdrop.visible { display: block; } 
.loading-container:not(.visible) { display: none; }