我跟随this tutorial在Oracle MAF应用程序中获取签名捕获功能。
当我尝试使用简单的POC时,如教程中所解释的那样,我可以解决任何问题。我已经将相同的逻辑集成到我的项目中。
以下是我为集成所做的设置,
js and css
文件包含在任务下的maf-feature.xml
中
流定义(我有amx
页面)。 我已将bean的范围定义为pageFlow
XXXXX-task-flow.xml
个文件而不是adfc-mobile-config.xml
个
下面,
<managed-bean id="__20">
<managed-bean-name>signatureCapture</managed-bean-name>
<managed-bean-class>package.SignatureCapture</managed-bean-class>
<managed-bean-scope>pageFlow</managed-bean-scope>
</managed-bean>
当我使用下面的方法调用fetchHandler
和cleaHandler
方法时
commandButton
,它调用方法没有失败。
从方法来看,下面的语句不会触发JavaScript
在fetchHandler方法中:
AdfmfContainerUtilities.invokeContainerJavaScriptFunction(AdfmfJavaUtilities.getActiveContextId(), "doFetch",
new Object[] { });
在clearHandler方法中:
AdfmfContainerUtilities.invokeContainerJavaScriptFunction(AdfmfJavaUtilities.getActiveContextId(), "doClear",
new Object[] { });
以下是您参考的JavaScript(MyFile.js
),
(function () {
// This method clears the signature area
doClear = function () {
alert("Clear function called.!");
var sigElement = document.getElementById("sig");
if (sigElement == null)
alert("sigElement not found");
var sig = $(sigElement);
sig.signature('clear');
adf.mf.api.invokeMethod("package.SignatureCapture", "FetchCallback", "", onInvokeSuccess, onFail);
};
// This method gets the signature as a JSON string. As an example, it does an alert of the string and then sends it to a Java handler for further processing
doFetch = function () {
alert("Fetch function called.!");
var sigElement = document.getElementById("sig");
if (sigElement == null)
alert("sigElement not found");
var sig = $(sigElement);
var fetchData = sig.signature('toJSON');
adf.mf.api.invokeMethod("package.SignatureCapture", "FetchCallback", fetchData, onInvokeSuccess, onFail);
};
function onInvokeSuccess(param) {
alert("onInvokeSuccess");
};
function onFail() {
alert("It failed");
};
})();
任何建议都将不胜感激。如果您需要更多详细信息,请在下方发表评论。
答案 0 :(得分:1)
而不是AdfmfJavaUtilities.getActiveContextId()
,请尝试使用您的功能ID(作为字符串)。
来自Oracle文档(click):
public static Object invokeContainerJavaScriptFunction(String featureId,
String methodName,
Object[] args)
<强>参数:强>
<强>返回:强>
所以你可以看到/说你自己AdfmfJavaUtilities.getActiveContextId()
没有返回featureID但是当前要素的活动EL上下文的名称(click)