面对一个奇怪的问题,worklight适配器无法从模拟器调用。 LogCat给出了以下错误
07-02 20:56:59.063: D/DroidGap(873): onMessage(onNativeReady,null)
07-02 20:56:59.063: D/DroidGap(873): onMessage(onPageFinished,file:///data/data/com.PivMobileNew/files/www/default/PivMobileNew.html#clientListPage)
07-02 20:56:59.513: D/PivMobileNew(873): --------- $('#clientListPage').bind('pageinit', function(event){ ------------
07-02 20:57:00.673: E/PivMobileNew(873): [http://10.202.4.254:1028/worklight/apps/services/api/PivMobileNew/android/query] exception. undefined is not a function
07-02 20:57:00.823: D/CordovaLog(873): Uncaught TypeError: undefined is not a function
07-02 20:57:00.823: D/CordovaLog(873): file:///data/data/com.PivMobileNew/files/www/default/wlclient/js/worklight.js: Line 1467 : Uncaught TypeError: undefined is not a function
07-02 20:57:00.823: E/Web Console(873): Uncaught TypeError: undefined is not a function at file:///data/data/com.PivMobileNew/files/www/default/wlclient/js/worklight.js:1467
然而,从普通调用适配器时,它可以正常工作。
这里是适配器调用代码...
function GetClient(strClientName) {
var invocationData = {
adapter : 'PivMobileAdapter'
,procedure : 'getClient'
,parameters: [{"ClientName":strClientName}]
};
WL.Logger.debug(" --------- entered in function GetClient------- 2c");
try {
WL.Client.invokeProcedure(invocationData, {
onSuccess : handleSuccess,
onFailure : handleFailure,
});
}
catch (e)
{ WL.Logger.debug("---inside try catch, error occured while invokingProcedure----");
WL.Logger.debug(e.message);
}
function handleSuccess(result) {
WL.Logger.debug(" --------- inside handling success invoking procedure $('#searchNew').click(function() ------- 2c");
...some code here1...
...some code here2...
}
function handleFailure(result) {
WL.Logger.debug(" --------- inside handling failure invoking procedure $('#searchNew').click(function() ------- 2c");
...some code here1...
...some code here2...
}
}
不确定如何前进,任何人都可以帮忙吗?
答案 0 :(得分:0)
在使用引用之前,必须定义onSuccess和onFailure处理函数。 您还需要在变量中保存函数引用,因为您的代码已在函数内部。
var handleSuccess = function(xxx) {
// some code
};
var handleFailure = function(xxx) {
// some code
};
// references need to exist prior to passing them as callback handlers.
WL.Client.invokeProcedure(invocationData, {
onSuccess : handleSuccess,
onFailure : handleFailure,
});