2013-08-02 2 views
0

변수를 backgroundService.js에 전달하려고합니다.이 변수를 통해 푸시 시간을 설정합니다 ...하지만 작동하지 않습니다 ... 수동으로 설정 한 경우에만 작동합니다. 내가 timer를 사용할 때 대신 2000 작동하지 왜 밀리 초 단위로 시간을 ...Titanium - iOS 백그라운드 서비스가 작동하지 않습니다.

// app.js 

var timer = 2000 

Ti.App.Properties.setString('pushTime', timer) 

var service = Ti.App.iOS.registerBackgroundService({ 
    url:'bg.js' 
}) 


// bg.js 

var timer = Ti.App.Properties.getString('pushTime') 
Ti.API.info(timer) 

var notification = Ti.App.iOS.scheduleLocalNotification({ 
    alertBody:"Passou a bebedeira ja?", 
    alertAction:"Ok", 
    userInfo:{"hello":"world"}, 
    sound:"pop.caf", 
    badge: 1, 
    date:new Date(new Date().getTime() + timer) 
}) 

사람이 아는 사람?

감사 3.1.1iOS

+0

내가 이해할 지 모르겠지만 내 코드가 작동해야합니다 ... 내 '타이머'를 '2000'으로 변경했기 때문에 밀어 넣기를 실행합니다. 티타늄의 문서에서이 알림 매개 변수를 얻을 수 있습니다. 이 : 날짜 : 날짜 알림이 발생하는 날짜와 시간. – DHennrich

+0

'var timer = Ti.App.Properties.getString ('pushTime')'. Javascript가 이것을 자동으로 숫자로 변환합니까 ?? – borrrden

+0

'Ti.API.info (timer)'에 대해서'2000'을 반환하므로 숫자가 – DHennrich

답변

1

DHennrich, Ti.API.info(timer) 반환 2000 2000 수의 종류는 것을 의미하지 않는다. 실제로는 setString 메서드를 사용하여 값을 저장하고 getString()을 사용하여 검색하므로 문자열입니다. setString을 사용하면 값을 문자열로 저장하고 getString은 항상 문자열 avlue를 반환합니다. 그래서 timer 변수 대신 2000을 사용할 때 코드가 작동하는 것입니다.

API Documentation에서

는에는 getString (문자열 속성은 [문자열 기본]) : 문자열

은 문자열 데이터 유형과 같은 속성의 값을 돌려줍니다.

property : String 

Name of property. 
default : String (optional) 

Default value to return if property does not exist. 

반환

String 

당신은 속성을 설정 setString 대신 setInt 또는 setDouble을 사용할 수 있으며 getInt 또는 getDouble 각각 사용하는 검색 매개 변수.

Ti.App.Properties.setInt('pushTime', timer);

를 사용하여 값을 저장하려고하면

var timer = Ti.App.Properties.getInt('pushTime');

나는 그것이 문제가 해결 희망을 사용하여 값을 검색 할 수 있습니다.

+0

Omg ... 맞습니다! 도움 주셔서 감사합니다. 정말 – DHennrich

+0

@DHennrich : 환영합니다 :) – Anand

관련 문제