gpt4 book ai didi

javascript - 甲骨文 MAF : (Signature Capture) Calling a javascript function from Managed Bean

转载 作者:行者123 更新时间:2023-11-30 00:20:30 25 4
gpt4 key购买 nike

我正在关注 this tutorial在 Oracle MAF 应用程序中获取签名捕获功能。

当我按照教程中的说明尝试使用简单的 POC 时,我让它正常工作,没有出现任何问题。我已将相同的逻辑集成到我的项目中。


以下是我为集成所做的设置,

  • 我已将 js 和 css 文件包含到任务下的 maf-feature.xml 中流定义(我有 amx 页面)。
  • 我已经将 bean 的范围定义为 pageFlow insideXXXXX-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>
  • 当我使用下面的方法调用 fetchHandlercleaHandler 方法时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");
};

})();

如有任何建议,我们将不胜感激。如果您需要有关此的更多详细信息,请在下方评论。

最佳答案

尝试使用您的功能 ID(作为字符串),而不是 AdfmfJavaUtilities.getActiveContextId()

来自 Oracle 文档 ( click ):

public static Object invokeContainerJavaScriptFunction(String featureId,
String methodName,
Object[] args)

参数:

  • featureId:调用方法的特征的 ID
  • methodName: 方法名
  • args:要传递给的参数数组方法

返回:

  • 一个 JSON 对象

就像您自己看到/说的那样 AdfmfJavaUtilities.getActiveContextId() 不返回 featureID,而是返回当前功能的 Activity EL 上下文的名称 (click)

关于javascript - 甲骨文 MAF : (Signature Capture) Calling a javascript function from Managed Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33347542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com