What is a more elegant way to overcome Error: Expecting object specifier. Argument has no object specifier when sending an SMS via Messages via JXA
What is a more elegant way to overcome Error: Expecting object specifier. Argument has no object specifier when sending an SMS via Messages via JXA
这不起作用
with (Application("Messages")) {
send(text, {to: services["SMS"].buddies[phone]})
}
与
错误:需要对象说明符。参数没有对象说明符。
文本有效且不为空。 phone 有效且不为空。
如果我硬编码它起作用的值。我决定尝试 'dynamic' 有效的硬编码。
command = 'with (Application("Messages")) { send("' + text + '", {to: services["SMS"].buddies["' + phone + '"]}) } ;' ;
eval(command) ;
有没有更优雅的方法来克服这个问题?
为什么 eval 可以工作,但带有变量的代码却不行?
将代码分解成更小的部分对我很有帮助。
var text="foo"
var phone="+14159999999"
var Messages = Application('Messages')
var service = Messages.services[0]
var recipient = service.buddies.byName(phone, {
of: service
})
Messages.send(text , {
to: recipient
})
这不起作用
with (Application("Messages")) {
send(text, {to: services["SMS"].buddies[phone]})
}
与 错误:需要对象说明符。参数没有对象说明符。
文本有效且不为空。 phone 有效且不为空。 如果我硬编码它起作用的值。我决定尝试 'dynamic' 有效的硬编码。
command = 'with (Application("Messages")) { send("' + text + '", {to: services["SMS"].buddies["' + phone + '"]}) } ;' ;
eval(command) ;
有没有更优雅的方法来克服这个问题? 为什么 eval 可以工作,但带有变量的代码却不行?
将代码分解成更小的部分对我很有帮助。
var text="foo"
var phone="+14159999999"
var Messages = Application('Messages')
var service = Messages.services[0]
var recipient = service.buddies.byName(phone, {
of: service
})
Messages.send(text , {
to: recipient
})