1

这不起作用

    with (Application("Messages")) { 
            send(text, {to: services["SMS"].buddies[phone]}) 
    }

错误:期望对象说明符。参数没有对象说明符。

文本有效且不为空。电话有效且不为空。如果我对它的值进行硬编码。我决定尝试有效的“动态”硬编码。

    command = 'with (Application("Messages")) { send("' + text + '", {to: services["SMS"].buddies["' + phone + '"]}) } ;' ;
    eval(command) ;

有没有更优雅的方法来克服这个问题?为什么 eval 可以工作,但带有变量的代码却不行?

4

1 回答 1

1

将代码分解成更小的部分对我有帮助。

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
})
于 2016-05-09T17:07:45.910 回答