【问题标题】:IBM Mobilefirst V8 - Custom Direct update on hybrid application using Ionic v3.20.0 is not happeningIBM Mobilefirst V8 - 使用 Ionic v3.20.0 的混合应用程序的自定义直接更新没有发生
【发布时间】:2018-09-25 07:25:35
【问题描述】:

我正在尝试在 ionic v3.20.0 中实现自定义直接更新,但在访问以下代码时,无法继续。我找不到任何方法,因为 worklight.d.ts 文件中没有以下函数,但可以在 worklight.js 文件中找到。

使用的插件是cordova-plugin-mfp。官方文档中提供的解决方案仅与cordova应用程序相关,可以通过具有WlCommonInit()函数的index.js文件来完成。根据文档,将从此函数调用以下代码,但无法在基于 ionic-cordova 的应用程序中执行此操作。

wl_DirectUpdateChallengeHandler.handleDirectUpdate = function(directUpdateData, directUpdateContext) {
// Implement custom Direct Update logic

};

请参阅以下链接以获取更多信息。 https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/8.0/application-development/direct-update/

请帮助我在需要在 typescript 中实现的 ionic v3.20.0 中实现这一点。谢谢!。

【问题讨论】:

  • 是在 android 或 iOS 上看到的问题,还是两者兼而有之?正在使用什么 cordova-plugin-mfp 版本?什么是cordova-android和cordova-ios版本?
  • 是的。目前正在使用 android 平台 android 6.4.0。 cordova 插件版本为:cordova-plugin-mfp 8.0.2017121811。
  • 使用最新的cordova-android@7.0.0和cordova-plugin-mfp
  • 可以分享一下最新的cordova-plugin-mfp的worklight.d.ts文件吗?由于我们的项目中使用了这个特定的 mfp 插件,因此我们无法对其进行升级。如果我们可以访问最新版本的 worklight.d.ts 文件中提到的代码 sn-p,请告诉我

标签: ibm-mobilefirst


【解决方案1】:

目前cordova-plugin-mfp 中没有用于wl_DirectUpdateChallengeHandler 的 typescript API 来自定义 Ionic 应用程序中的直接更新。

但是,您可以在 JavaScript 中进行实现并将其包含在 Ionic 项目中。以下是步骤:

  • 在项目的路径src/assets 内创建一个名为js 的文件夹
  • 用如下代码新建一个JS文件并保存为wldirectudpate.js
function wlCommonInit() {
             console.log(">> wlCommonInit() ..." );  
             wl_DirectUpdateChallengeHandler.handleDirectUpdate = function(directUpdateData, directUpdateContext) {
                 // Implement custom Direct Update logic
             };
        };
  • 在 index.html 文件中添加 JS 位置,该文​​件位于 /src/index.html

<script src="assets/js/wldirectudpate.js"></script>

【讨论】:

  • 感谢维塔尔的帮助。只是想再问一件事,我们可以使用基于离子的警报控制器覆盖直接更新的默认弹出窗口。但这需要在 ts 文件中实现。所以你能帮我解决这个问题吗?
  • 加载窗口时窗口对象调用 wlCommonInit() 函数。我尝试通过使用声明 var wlCommonInit 从 app.component.ts 文件调用它并通过调用在构造函数中使用它来覆盖它wlCommonInit() 但不幸的是,我收到了错误,因为未处理的承诺拒绝并声明 wl_directUpdateChallengeHandler 未定义。请帮助我,因为我已经尝试了几乎所有可能的方法。
  • @vikaskumar 而不是覆盖wlCommonInit,您可以尝试在app.component.ts 文件中覆盖wl_DirectUpdateChallengeHandler.handleDirectUpdate 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
  • 1970-01-01
相关资源
最近更新 更多