我正在使用MFP8,我的应用程序是在Android平台上运行的基于Cordova的混合应用程序(没有本机代码只有HTML,JS和CSS)
在MFP8中,根据文档WL.connect()不再存在,调用不受保护的资源不会触发直接更新。所以我在HTTP适配器中创建了一个安全的方法,我称之为。我还编写了一个挑战处理程序(它基本上什么都不做,只返回true),并且适配器调用成功,我的应用程序的其余部分工作正常。
注意:质询处理程序适配器必须用Java编写,我遵循这些步骤。
现在我对我的HTML做了一个“cordova build android”,然后调用“mfpdev app webupdate”。
一切都很成功,我看到MFP8控制台中的网络资源已更新。现在我启动我的应用程序并单击一个按钮来调用虚拟安全方法并触发直接更新。它会在安装错误消息后下载资源并在最后 “更新失败” “直接更新失败。”并显示选项“CLOSE”和“RELOAD”。
我单击“RELOAD”它会执行与上面相同的操作。
我单击“关闭”它会抛出错误消息,错误代码为“CHALLENGE_HANDLING_CANCELED”,错误消息“挑战处理程序操作已取消”。
注意:没有直接更新时我没有收到此消息,一切正常。
我看到MFP8(8.0.0.0-MFPF-DevKit-Windows-IF2016070718)有一个修复程序,我从FixCentral下载了它,并在我的本地开发盒中更新了我的MFP8服务器,并更改了config.xml以更新应用程序到新版本并再次进行部署。
没有任何更改仍会收到相同的错误消息。
任何帮助将不胜感激
-A
答案 0 :(得分:0)
首先:此处描述了迁移v8.0之前的MFP客户端项目的过程:http://www.ibm.com/support/knowledgecenter/en/SSHS8R_8.0.0/com.ibm.worklight.upgrade.doc/dev/c_convert2cordova.html
第二:这个特定项目的问题是 Cordova的config.xml在mfp:directUpdateAuthenticityPublicKey元素中包含一个错误的值(" mfp-pubkey")。一旦该值无效,直接更新就开始正常工作了。 按照http://www.ibm.com/support/knowledgecenter/en/SSHS8R_8.0.0/com.ibm.worklight.dev.doc/admin/t_authenticated_direct_update.html?view=kc#t_authenticated_dir_update了解如何正确填写正确的密钥。