我正在尝试将变量传递给我的backgroundService.js,并设置通过此变量的推送时间...但它不起作用...只有在我以毫秒手动设置时间时才能工作... < / p>
// 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
答案 0 :(得分:1)
DHennrich,Ti.API.info( timer )
返回2000并不意味着2000是一种数字。实际上它是一个字符串,因为您使用setString方法来存储值并使用getString()
检索它。当您使用setString
时,它将值存储为字符串,getString
始终返回字符串avlue。这就是为什么当你使用2000而不是timer
变量时你的代码工作的原因。
getString(String property,[String default]):String
以字符串数据类型的形式返回属性的值。参数
property : String Name of property. default : String (optional) Default value to return if property does not exist.
返回
String
您可以使用setInt或setDouble代替setString
来设置属性并分别检索使用getInt或getDouble。
尝试使用Ti.App.Properties.setInt( 'pushTime', timer );
您可以使用
检索该值 var timer = Ti.App.Properties.getInt( 'pushTime' );
我希望它能解决你的问题。