1

面对一个奇怪的问题,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

但是,在从 common 调用适配器时,它可以正常工作。

这是适配器调用代码...

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...
    }
}

不知道如何前进,有人可以帮忙吗?

4

1 回答 1

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,
});
于 2013-07-03T08:50:53.073 回答