0

変数を backgroundService.js に渡そうとしていますが、この変数を使用してプッシュ時間を設定しています...しかし、機能していません...時間をミリ秒単位で手動で設定した場合にのみ機能します...

// 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 )
})

timer代わりに使用すると機能しない理由を誰かが知っ2000ていますか?

ありがとう 3.1.1 iOS

4

1 に答える 1

1

DHennrich、Ti.API.info( timer )2000 を返しても、2000 が数値の型であるという意味ではありません。setStringメソッドを使用して値を保存し、 を使用して取得しているため、実際には文字列ですgetString()。使用するsetStringと、値が文字列として格納され、getString常に文字列 avlue が返されます。timerこれが、変数の代わりに 2000 を使用したときにコードが機能した理由です。

API ドキュメントから

getString( String プロパティ, [String default] ) : String

プロパティの値を文字列データ型として返します。パラメーター

property : String

Name of property.
default : String (optional)

Default value to return if property does not exist.

戻り値

String

プロパティを設定する代わりにsetIntまたはsetDoubleを使用し、それぞれgetIntまたはgetDoubleを使用して取得することができます。setString

を使用して値を保存してみてくださいTi.App.Properties.setInt( 'pushTime', timer );

を使用して値を取得できます

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

問題が解決したことを願っています。

于 2013-08-02T03:41:12.723 に答える