2014-09-12 1 views
0

Worklight 어댑터 절차에서 setTimeout을 사용하려고했습니다. 작동하지 않습니다.Worklight 어댑터 프로 시저에서 setTimeout 사용

WLSE0099E: An error occurred while invoking procedure [project BusinessBank]PushAdapter/submitNotificationFWLSE0100E: parameters: [project BusinessBank] 
ReferenceError: "setTimeout" is not defined. (PushAdapter-impl.js#37) 

어댑터 프로 시저를 호출 한 후 푸시 알림을 보류해야합니다. 데모가 필요합니다. 내 코드 예제 :이 약 JavaScript method setTimeout에 대해 사실이 있다면 당신은 정확히 당신이 뭘 하려는지 몇 가지 코드 예제를 추가 할 것입니다 경우

WL.Server.createEventSource({ 
    name: 'PushEventSource', 
    onDeviceSubscribe: 'deviceSubscribeFunc', 
    onDeviceUnsubscribe: 'deviceUnsubscribeFunc', 
    securityTest:'AngularStarter-strong-mobile-securityTest' 
}); 

function deviceSubscribeFunc(userSubscription, deviceSubscription){} 
function deviceUnsubscribeFunc(userSubscription, deviceSubscription){} 

function submitNotification(userId, notificationText) { 
    var userSubscription = WL.Server.getUserNotificationSubscription('PushAdapter.PushEventSource', userId); 

    if (userSubscription == null) { 
     return { result: "No subscription found for user :: " + userId }; 
    } 

    var badgeDigit = 1, 
     notification = WL.Server.createDefaultNotification(notificationText, badgeDigit, {custom: "data"}); 

    setTimeout(function() { 
     WL.Logger.debug("submitNotification >> userId :: " + userId + ", text :: " + notificationText); 
     WL.Server.notifyAllDevices(userSubscription, notification); 
    },5000); 

    return { 
     result: "Notification sent to user :: " + userId 
    }; 
} 

답변

1

, 그것은 도움이 될 것입니다,이는 프로그래밍 Q &입니다 제공 웹 사이트와 모두.

Worklight Studio를 사용하여 응용 프로그램을 데모하는 경우 시간 제한을 구현할 필요가 없습니다.
앱을 열고 로그인하고 알림을 구독하고 앱을 닫습니다. 그런 다음 어댑터를 마우스 오른쪽 단추로 클릭하고 Run As> Worklight 프로 시저 호출을 선택하고 텍스트에 사용자 이름을 추가합니다 (예 : "myuser", "mytext"). 그리고 그게 ... 통지가 전송됩니다. 언제든지 보낼 수 있습니다. How to increase the adapter procedure timeout value in Worklight?

이 절차에 시간 제한을 설정하려면 어댑터 XML 파일 :

그렇지 않으면,
는 어댑터 절차 setTimeout 같은 건 ...

여기에 참조가 없습니다

<procedure name="nameHere" requestTimeoutInSeconds="valueHere"/> 

IBM Worklight Knowledge Centertraining modules을 검토하십시오.

+0

푸시 데모에 문제가 있습니다. 이 Worklight 기능을 시연해야하며 4-5 초 동안 어댑터 절차를 호출 한 후 보내는 메시지를 보관하려고합니다. – alexeybondarenko

+0

코드에서 코드를 사용하여 질문을 편집하십시오. –

+0

코드 예제를 추가했습니다. – alexeybondarenko

0

setTimeout API는 글로벌 윈도우 객체에 속합니다. 기본적으로 그것을 사용하는 방식은 window.setTimeout()에 대한 바로 가기입니다.

어댑터는 브라우저가 아니고 서버 실행 가능 코드이므로 전역 창 개체가 없으므로 setTimeout API가 없습니다.