Add custom cordova plugin in IBM Worklight 6.1

I am trying to add a custom Cordova plugin for the iOS platform, and I am having some problems when I compare this to the process of adding a plugin to a cord.

The plugin I'm trying to use here is https://github.com/phonegap-build/StatusBarPlugin

With cordova, I just used the command line c ordova plugin add com.phonegap.plugin.statusbar

Firstly, I tried changing in my own folder, but I noticed that if I do this, it will work, but it will be deleted the next time I deploy the iOS platform. Secondly, I tried to add files (plugin js file and cordova_plugins.js file.) In applications / myapp / iphone or apps / myapp / common, but this causes a problem. The file format cordova_plugins.jsdoes not seem completely understandable.

Instead of this working format:

cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
    {
        "file": "plugins/org.apache.cordova.battery-status/www/battery.js",
        "id": "org.apache.cordova.battery-status.battery",
        "clobbers": [
            "navigator.battery"
        ]
    },
,
    {
        "file": "plugins/com.phonegap.plugin.statusbar/www/statusbar.js",
        "id": "com.phonegap.plugin.statusbar.statusbar",
        "clobbers": [
            "window.StatusBar"
        ]
    }
]
});

For this format, this format does not work properly:

/* JavaScript content from worklight/cordova_plugins.js in JS Resources */
/*
* Licensed Materials - Property of IBM
* 5725-I43 (C) Copyright IBM Corp. 2006, 2013. All Rights Reserved.
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*/
cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
    {
        "file": "plugins/org.apache.cordova.battery-status/www/battery.js",
        "id": "org.apache.cordova.battery-status.battery",
        "clobbers": [
            "navigator.battery"
        ]
    }
]
});
/* JavaScript content from worklight/cordova_plugins.js in folder common */

/* JavaScript content from worklight/cordova_plugins.js in JS Resources */
/*
* Licensed Materials - Property of IBM
* 5725-I43 (C) Copyright IBM Corp. 2006, 2013. All Rights Reserved.
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*/
cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
    {
        "file": "plugins/org.apache.cordova.battery-status/www/battery.js",
        "id": "org.apache.cordova.battery-status.battery",
        "clobbers": [
            "navigator.battery"
        ]
    },
    {
        "file": "plugins/com.phonegap.plugin.statusbar/www/statusbar.js",
        "id": "com.phonegap.plugin.statusbar.statusbar",
        "clobbers": [
            "window.StatusBar"
        ]
    }
]
});

How do i do Where should I put this file? How can I add this custom plugin, especially if I want to add it only for iOS, not for Android?

+4
source share
3 answers

Worklight 6.1.0.x does not yet support the addition of ready-made Cordova 3.x plugins using the plugin or any other procedure that you do in a clean Cordova application, including attempting to edit the file you are trying to edit. This is a known limitation in current versions of Worklight.

, Cordova Worklight, .

, , .

+1

: MobileFirst 7.1, SDK .

, MobileFirst (Worklight), , IBM.

:

  • Cordova,
  • ,
  • MobileFirst,
  • ( ),
  • config.xml cordova_plugin.js(.. MobileFirst Cordova)
  • MobileFirst.

: IBM / cordova_plugin.js.

Cordova ( ) MobileFirst ( 1-4). Ionic Keyboard, , ( Cordova ) .

## Create a directory to contain your MobileFirst project e.g. mkdir example; cd example; ##
## Create Cordova project ##
mkdir .tmp
cd .tmp/
cordova create plugins com.plugins plugins;
cd plugins/
cordova platform add ios;
cordova plugin add com.ionic.keyboard;
cd ../..
## Create mobile first project ##
mfp create hybrid
cd hybrid/
mfp add hybrid hybrid
mfp add environment iphone
## Generate native files ##
mfp build
cd ..
## Create staging ##
mkdir -p plugins/native/www/default/worklight
mkdir -p plugins/resources/mobilefirst/
mkdir -p plugins/resources/cordova/
mkdir -p plugins/hm/
## Copy config.xml ##
cp hybrid/apps/hybrid/iphone/native/config.xml plugins/resources/mobilefirst/
cp .tmp/plugins/platforms/ios/plugins/config.xml plugins/resources/cordova/
## Copy Cordova files ##
cp -R hybrid/apps/hybrid/iphone/native/www/default/worklight/ plugins/resources/mobilefirst/
## Copy plugins JS ##
cp -R .tmp/plugins/platforms/ios/www/plugins plugins/native/www/default/worklight/
cp -R .tmp/plugins/platforms/ios/www/ plugins/resources/cordova/
## Copy classes ##
cp -R .tmp/plugins/platforms/ios/Plugins/Plugins/com.ionic.keyboard/ plugins/hm/
## Delete the Cordova project as we have copied all of the artefacts we need ##
rm -R .tmp
## Create the config and cordova_plugin.js which is going to override the mfp build version ##
cp plugins/resources/mobilefirst/config.xml plugins/native/
cp plugins/resources/mobilefirst/cordova_plugins.js plugins/native/www/default/worklight/

config.xml cordova_plugins.js ( 5).

plugins/resources/cordova/config.xml plugins/native/config.xml.

<feature name="Keyboard">
  <param name="ios-package" onload="true" value="IonicKeyboard" />
</feature>

plugins/resources/cordova/cordova_plugins.js plugins/native/www/default/worklight/cordova_plugins.js.

{
  "file": "plugins/com.ionic.keyboard/www/keyboard.js",
  "id": "com.ionic.keyboard.keyboard",
  "clobbers": [
    "cordova.plugins.Keyboard"
  ]
}

MobileFirst ( 6).

## Copy from staging to Worklight ##
cp -R plugins/hm/ hybrid/apps/hybrid/iphone/native/Classes/

Xcode , Xcode Classes " ...". , .

, / MobileFirst ( 6b). , mfp, mfp cordova_plugins.js.

## Do this after every mfp build ##
rm -f hybrid/apps/hybrid/iphone/native/www/default/worklight/cordova_plugins.js
cp -R plugins/native/ hybrid/apps/hybrid/iphone/native/

( 6 mfp), .

<input type="text">

window.addEventListener('native.keyboardshow', keyboardShowHandler);

function keyboardShowHandler(e){
    alert('Keyboard height is: ' + e.keyboardHeight);
}

, . ( Grunt) IBM.

+2

. , , , , . , cordova_plugins.js , mfp, wlapp . , , , wlapp, .

0
source

Source: https://habr.com/ru/post/1540907/


All Articles