无法在 IBM MobileFirst 6.3 中调用 window.plugins
Posted
技术标签:
【中文标题】无法在 IBM MobileFirst 6.3 中调用 window.plugins【英文标题】:Not able to call window.plugins in IBM MobileFirst 6.3 【发布时间】:2015-07-31 11:46:41 【问题描述】:我使用的是 MobileFirst 6.3。我无法调用 window.plugins.XXX(我想使用 SSLcertificateChecker 作为 XXX)。但是 window.plugins 是未定义的。
我想将来自https://github.com/EddyVerbruggen/SSLCertificateChecker-PhoneGap-Plugin 的 SSLCertificateChecker phonegap 插件包含到我的 worklight 项目中。
首先我尝试了 ios。我正在手动添加所有文件。
已添加
<feature name="SSLCertificateChecker">
<param name="ios-package" value="SSLCertificateChecker" />
</feature> in config.xml
-
将依赖项添加到 Security.framework 并将 SSLCertificateChecker.* 复制到插件文件夹
但在实施过程中,window.plugins 未定义。无法继续。
【问题讨论】:
请用一个更完整的例子更好地解释你试图做什么。什么是window.plugin?这是从哪里来的,为什么你认为它应该工作,你在哪个环境中测试它? 如果我错了,请纠正我,Idan。 查看我的回答如何将此插件添加到您的应用程序。 您的解决方案有效,将其标记为答案。谢谢! 【参考方案1】:它应该按照我提供的 in this answer 相同的说明工作,只是根据你的调整。
注意:我在那里写的相同警告也适用于这里。即:在 MobileFirst Studio 中执行的每个构建中,都会重新生成文件 cordova_plugins.js,因此您将丢失您将在此文件中执行的所需更改,并且您将需要一遍又一遍地重新执行它们。
一个可能的解决方案是升级到即将发布的 MobileFirst Platform Foundation 7.1,它引入了对另一类应用程序类型的支持 - Cordova 应用程序,并将 MobileFirst SDK 集成为插件,从而使您能够使用 Cordova Plug-man(或任何其他方法)安装 3rd 方插件,就像在任何基于 Cordova 的应用程序中一样。 7.1 之前的版本不支持 Cordova Plug-man。否则,你只需要找到围绕它的构建技巧。
工作室
config.xml
-
将插件声明添加到 your-app\iphone\native\config.xml
index.html
将以下内容添加到header
元素:
<script type="text/javascript" src="js/SSLCertificateChecker.js"></script>
SSLCertificateChecker.js
确保将 SSLCertificateChecker.js 文件放在 your-app\common\js 文件夹中。
编辑文件。
在顶部添加:
cordova.define("nl.x-services.plugins.SSLCertificateChecker", function(require, exports, module)
在底部添加:);
构建
-
在 MobileFirst Studio 中构建项目并在 Xcode 中打开它
Xcode
在构建阶段添加所需的 Security.framework(但很可能已经存在)
右键单击项目根文件夹,选择“将文件添加到...”并复制提供的 .h 和 .m 文件
导航到 native\www\default\worklight\cordova_plugins.js 并添加以下内容。这也是您每次在 MobileFirst Studio 中进行构建时都必须重新编辑的文件...
"file": "../js/SSLCertificateChecker.js",
"id": "nl.x-services.plugins.SSLCertificateChecker",
"clobbers": [
"window.plugins.sslCertificateChecker"
]
,
在 iOS 模拟器或设备上运行。
【讨论】:
感谢 Idan 快速及时的回复。这现在工作得很好。将您的上述方法用于iOS。还有安卓。对于 android,在 cordova_plugins.js 中添加了相同的内容。但是,正如您提到的,每次我们进行构建时都需要编辑这个 cordova_plugins。谢谢! 我写了一篇博文,提出了一个可能的解决方案:developer.ibm.com/mobilefirstplatform/2015/08/03/… 您的帖子在集成过程中也一定会帮助其他人。感谢您抽出时间来写这篇文章。 您好 Idan,我们在部署过程中遇到问题。由于我们通过在 application-descriptor 中设置标志 ..以上是关于无法在 IBM MobileFirst 6.3 中调用 window.plugins的主要内容,如果未能解决你的问题,请参考以下文章
运行 IBM MobileFirst 6.3 CLI 时无法检索 NativeApplicationBuilder