Я следую this tutorial, чтобы получить функцию захвата подписки в приложении Oracle MAF.Oracle MAF: (захват подписи) Вызов функции javascript из управляемого компонента
Когда я попытался с простым POC, как объяснено в учебнике, я сделал это с любыми проблемами. Та же логика, которую я включил в свой проект.
Ниже приведены параметры, которые я сделал для интеграции,
- я включил
js and css
файл вmaf-feature.xml
под Task определения потока (где я имеюamx
страницу). Я определил объем боба как
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");
};
})();
Любое предложение будет оценено. Пожалуйста, прокомментируйте ниже, если вам нужны подробности об этом.
Вместо AdfmfJavaUtilities.getActiveContextId() попробуйте использовать идентификатор вашей функции (в виде строки). – User404
Спасибо, теперь я могу вызвать JavaScript. Но почему «AdfmfJavaUtilities.getActiveContextId()» работает не так, как ожидалось, когда я пытаюсь напечатать значение, которое дает имя файла определения страницы. Например: у меня есть функция подписи в 'signature.amx', а определение моей страницы - 'signaturePageDef.xml', тогда 'AdfmfJavaUtilities.getActiveContextId()' выводит 'signaturePageDef' как вывод. В чем проблема. –