我试图将一个变量传递给我的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
最佳答案
DHennrich,Ti.API.info(timer)
返回 2000 并不意味着 2000 是一种数字。实际上它是一个字符串,因为您使用的是 setString方法来存储值并使用 getString()
检索它。当您使用 setString
时,它将值存储为字符串,而 getString
始终返回字符串 avlue。这就是为什么当您使用 2000 而不是 timer
变量时您的代码可以工作。
getString( String property, [String default] ) : String
Returns the value of a property as a string data type. Parameters
property : String Name of property. default : String (optional) Default value to return if property does not exist.
Returns
String
您可以使用 setInt或 setDouble而不是 setString
来设置属性并检索使用 getInt或 getDouble分别。
尝试使用 Ti.App.Properties.setInt( 'pushTime', timer ); 存储值
您可以使用
检索该值vartimer = Ti.App.Properties.getInt('pushTime');
希望它能解决您的问题。
关于ios - Titanium - iOS 后台服务不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18007201/