2015-05-25 55 views
1

我正在嘗試在我的應用程序中包含Ionic Keyboard插件。我經歷了Stack Overflow的幾篇文章,並根據Idan的建議,將Ionic鍵盤插件類直接添加到IBM MobileFirst Platform Foundation 6.3項目中,就像我們在添加插件時一樣。在MobileFirst中包含Ionic Keyboard Plugin

有沒有人做過嗎?我嘗試過一次,但沒有奏效。

事情我做:

  1. 新增的類文件IonicKeyboard.h,IonicKeyboard.m,UIWebViewExtension.h和UIWebViewExtension.m文件到classes文件夾。
  2. 在iOS環境中將以下條目添加到我的config.xml文件中。

    <feature name="Keyboard"> 
        <param name="ios-package" value="IonicKeyboard" onload="true" /> 
    </feature> 
    
  3. 嘗試使用類hide-on-keyboard-show

    <div class="hide-on-keyboard-open"> 
        <div id="google-map"></div> 
    </div> 
    

但它沒有工作,所以我假設鍵盤插件已無法正常工作。

+1

請提供您做了什麼?分享代碼。您使用的是什麼MFP版本「6.3」或「7」? –

+0

對不起。 –

回答

3

爲了添加IonicKeyboard到MobileFirst 6.3(在支持的方式),按照說明在documentation

  1. 聲明插件在config.xml文件。

    <feature name="Keyboard"> 
        <param name="ios-package" onload="true" value="IonicKeyboard"/> 
    </feature> 
    
  2. 在JavaScript代碼中使用cordova.exec()API。

    // added the cordova plugin definition in wlCommonInit(), as recommended by other answers I read (can't remember where), 
    // because the cordova event `deviceready` is fired and handled internally by MobileFirst 
    function wlCommonInit() { 
    
        // copied module id from https://github.com/driftyco/ionic-plugin-keyboard/blob/master/plugin.xml 
        cordova.define("com.ionic.keyboard.keyboard", function(require, exports, module) { 
        // copied code from https://github.com/driftyco/ionic-plugin-keyboard/blob/master/www/keyboard.js 
        var argscheck = require('cordova/argscheck'), 
         utils = require('cordova/utils'), 
         exec = require('cordova/exec'); 
    
        var Keyboard = function() { 
        }; 
    
        Keyboard.hideKeyboardAccessoryBar = function(hide) { 
         exec(null, null, "Keyboard", "hideKeyboardAccessoryBar", [hide]); 
        }; 
    
        Keyboard.close = function() { 
         exec(null, null, "Keyboard", "close", []); 
        }; 
    
        Keyboard.show = function() { 
         exec(null, null, "Keyboard", "show", []); 
        }; 
    
        Keyboard.disableScroll = function(disable) { 
         exec(null, null, "Keyboard", "disableScroll", [disable]); 
        }; 
    
        /* 
        Keyboard.styleDark = function(dark) { 
         exec(null, null, "Keyboard", "styleDark", [dark]); 
        }; 
        */ 
    
        Keyboard.isVisible = false; 
    
        module.exports = Keyboard; 
        }); 
        // Manually-register custom plugin 
        if (window.cordova && !window.cordova.plugins) { 
        window.cordova.plugins = {}; 
        } 
        // Do this instead of `clobbers` definition in native/www/default/worklight/cordova_plugins.js 
        window.cordova.plugins.Keyboard = cordova.require('com.ionic.keyboard.keyboard'); 
    
    } 
    
  3. 創建將在iOS中本機運行的插件類。 插件執行所需的操作並調用在調用cordova.exec()期間指定的JavaScript回調方法。發現https://github.com/driftyco/ionic-plugin-keyboard/tree/master/src/ios

    • IonicKeyboard.h
    • IonicKeyboard.m
    • UIWebViewExtension.h
    • UIWebViewExtension.m
  4. 將他們

    1. 將這些文件複製到該目錄YourProject/apps/yourAppName/iphone/native/Classes/
+0

工作完美...感謝Nikki –

0

我可以做到這一點的唯一方法是使用Chris在問題中給出的解決方案。鏈接附件。 (它的一種方式) Add custom cordova plugin to IBM Worklight 6.1

但是這個解決方案存在嚴重的缺陷。它會在每次生成mfp時覆蓋cordova_plugins.js文件和插件文件夾。

相關問題