ionic-解決在iOS中focus失效的問題

前言

今天在項(xiàng)目中遇到了這個(gè)奇葩的問題,基于ionic的iOS的hybird APP 無法使用focus()獲取焦點(diǎn)和鍵盤的問題。下面讓我們來解決這個(gè)問題。

問題:基于ionic的iOS的hybird APP 無法使用focus()獲取焦點(diǎn)和鍵盤的問題。

我的代碼如下:
directive:

.directive('myFocus', function($timeout, $parse) {
  return {
    link: function(scope, element, attrs) {
    var model = $parse(attrs.myFocus);
    scope.$watch(model, function(value) {
      if(value === true) {
        $timeout(function() {
          element[0].focus();
        });
      }else if(value === false){
        $timeout(function() {
          element[0].blur();
        });
      }
    })
   }
  }
})

html:

 <input id="myCommentsInputId" my-focus="isOpen" type="text" placeholder="說點(diǎn)什么">

這么一段簡單的代碼,在chrome和Android上面調(diào)試是正常的,然而在iOS就是怎么也出不來。

堅(jiān)決尋找解決方案

然后我開始了google、baidu的歷程,在知識(shí)的海洋里翱翔,看到很多奇怪的現(xiàn)象,而且也并沒有解決我的問題。
好像在 http://twilight.btlogs.com/how-to-focus-html-input-element-with-javascript-on-ios-and-android-mobile-safari/
這里面主要說的是,只有在監(jiān)聽了用戶觸發(fā)的時(shí)間的函數(shù)中執(zhí)行focus才有用,具體可以點(diǎn)進(jìn)去看一下。
我嘗試了一下,發(fā)現(xiàn)這個(gè)對于hybird App也是沒有任何效果。
但是可能在普通的iOS,html5頁面會(huì)生效的,這個(gè)我沒有嘗試,也請嘗試過得朋友告訴一下我。
我寫的類似于這樣,以下也符合他們說的:

.directive('focusMe', function($timeout) {
    return {
        link: function(scope, element) {
            element[0].on('click',function(){
                element[0].focus();    
            })
            $timeout(function() {
                element[0].trigger('click');
            },300);
            
        }
    };
})

我的解決方案

原來,在iOS App的配置文件(config.xml),里面默認(rèn)會(huì)有一句

<preference name="KeyboardDisplayRequiresUserAction" value="true" />

這里面的大概意思就是,鍵盤的顯示需要用戶去觸發(fā),而且是設(shè)置為true的!?。?br> 那么下面你們知道怎么做了吧,只需要把value的值改為false,一切都解決了。

<preference name="KeyboardDisplayRequiresUserAction" value="false" />

結(jié)束

凡事多去研究它的根源問題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,355評論 25 708
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 24,832評論 8 183
  • 寒氣祭出回馬槍,反戈風(fēng)雨滅春陽。人間正道如流水,歷盡曲折入大荒。 (新韻,2017-04-10)
    西江古月閱讀 242評論 0 2
  • 暑氣未消盡 夏日的鋒芒亦未整個(gè)兒收斂 秋已悄然探出了頭 邁著輕盈的腳步 款款而來 天高了遠(yuǎn)了,云卻厚了近了 鳥兒唱...
    Monica_Du閱讀 236評論 0 1
  • 珩兒520閱讀 171評論 0 0

友情鏈接更多精彩內(nèi)容