无法在IBM MobileFirst 6.3中调用window.plugins

时间:2015-07-31 11:46:42

标签: cordova-plugins ibm-mobilefirst

我正在使用MobileFirst 6.3。我无法调用window.plugins.XXX(我想将SSLcertificateChecker用作XXX)。但是window.plugins是未定义的。

我想将https://github.com/EddyVerbruggen/SSLCertificateChecker-PhoneGap-Plugin中的SSLCertificateChecker phonegap插件添加到我的工作灯项目中。

  1. 首先我试过iOS。我手动添加所有文件。

  2.     <feature name="SSLCertificateChecker">
            <param name="ios-package" value="SSLCertificateChecker" />
        </feature> in config.xml
    
    1. 向Security.framework添加依赖项,并将SSLCertificateChecker。*复制到插件文件夹
    2. 但是在实现window.plugins期间未定义。无法继续。

1 个答案:

答案 0 :(得分:0)

它应该按照我提供的in this answer的相同说明工作,只是调整到你的。

注意:我在这里写的相同警告也适用于此。即:在MobileFirst Studio中执行的每个构建中,正在重新生成文件cordova_plugins.js,因此您将丢失将在此文件中执行的所需更改,并且您将需要一遍又一遍地重新执行这些更改。

一个可能的解决方案是升级到即将发布的MobileFirst Platform Foundation 7.1,它引入了对另一类应用程序类型 - Cordova应用程序的支持,并将MobileFirst SDK集成为插件,从而使您能够使用Cordova Plug-man(或任何其他方法)来安装第三方插件,就像在任何基于Cordova的应用程序中一样。 7.1之前的版本不支持Cordova Plug-man。否则,你只需要找到它周围的构建黑客。

演播室

<强> config.xml中

  1. 将插件声明添加到your-app \ iphone \ native \ config.xml
  2. <强>的index.html

    1. 将以下内容添加到header元素:

      <script type="text/javascript" src="js/SSLCertificateChecker.js"></script>
      
    2. <强> SSLCertificateChecker.js

      1. 确保将SSLCertificateChecker.js文件放在your-app \ common \ js文件夹中。

      2. 编辑文件。

        • 在顶部添加:

          cordova.define("nl.x-services.plugins.SSLCertificateChecker", function(require, exports, module) {
          
        • 在底部添加:});

      3. <强>构建

        1. 在MobileFirst Studio中构建项目并在Xcode中打开它
        2. 的Xcode

          1. 在构建阶段添加所需的Security.framework(但很可能已经存在)

          2. 右键单击项目根文件夹,选择“将文件添加到...”并复制提供的.h和.m文件

          3. 导航到native \ www \ default \ worklight \ cordova_plugins.js并添加以下内容。这也是每次在MobileFirst Studio中进行构建时都必须重新编辑的文件...

            {
                "file": "../js/SSLCertificateChecker.js",
                "id": "nl.x-services.plugins.SSLCertificateChecker",
                "clobbers": [
                    "window.plugins.sslCertificateChecker"
                ]
            },
            
          4. 在iOS模拟器或设备上运行。