[英]Oracle MAF : (Signature Capture) Calling a javascript function from Managed Bean
我正在按照本教程获取 Oracle MAF 应用程序中的签名捕获功能。
当我按照教程中的说明尝试使用简单的 POC 时,我让它工作没有任何问题。 我已经集成到我的项目中的相同逻辑。
以下是我为集成所做的设置,
js and css
文件包含在任务流定义下的maf-feature.xml
(我有amx
页面)。 我在XXXXX-task-flow.xml
文件中将 bean 的范围定义为pageFlow
而不是像下面这样的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>
当我使用下面的commandButton
调用fetchHandler
和cleaHandler
方法时,它正在调用没有失败的方法。
从方法来看,下面的语句不会触发 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");
};
})();
任何建议将不胜感激。 如果您需要有关此的更多详细信息,请在下面发表评论。
尝试使用您的功能 ID(作为字符串)而不是AdfmfJavaUtilities.getActiveContextId()
) 。
从 Oracle 文档( 单击):
public static Object invokeContainerJavaScriptFunction(String featureId,
String methodName,
Object[] args)
参数:
返回:
所以就像你可以看到/说自己AdfmfJavaUtilities.getActiveContextId()
不返回功能AdfmfJavaUtilities.getActiveContextId()
,而是当前功能的活动 EL 上下文的名称( 单击)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.