Confirmed users
1,340
edits
No edit summary |
|||
(17 intermediate revisions by 3 users not shown) | |||
Line 19: | Line 19: | ||
interface SmsManager | interface SmsManager | ||
{ | { | ||
SmsRequest send( | SmsRequest send(DOMString number, DOMString message); | ||
SmsRequest[] send(DOMString[] number, DOMString message); | |||
unsigned short getNumberOfMessagesForText(in DOMString text); | unsigned short getNumberOfMessagesForText(in DOMString text); | ||
SMSRequest delete(in long | SMSRequest delete(in long id); // request.result == boolean | ||
SMSRequest delete(in SmsMessage message); | SMSRequest delete(in SmsMessage message); // request.result == boolean | ||
SMSRequest getMessage(in long | SMSRequest getMessage(in long id); // request.result == SMSMessage | ||
SMSRequest getMessages(in SMSFilter filter, bool reverse); // request.result == SMSIterator | SMSRequest getMessages(in SMSFilter filter, bool reverse); // request.result == SMSIterator | ||
SMSRequest markMessageRead(long id, boolean aValue); // request.result == boolean | |||
}; | }; | ||
Comments: | Comments: | ||
* | * Should use opaque objects as message-identifiers rather than longs? | ||
interface SmsRequest | interface SmsRequest | ||
{ | { | ||
readonly attribute | readonly attribute DOMString readyState; // "processing" or "done" | ||
readonly attribute | readonly attribute DOMError? error; | ||
attribute EventListener | attribute EventListener onsuccess; | ||
attribute EventListener | attribute EventListener onerror; | ||
attribute readonly | attribute readonly any? result; | ||
}; | }; | ||
interface SmsMessage | interface SmsMessage | ||
{ | { | ||
readonly attribute long | readonly attribute long id; | ||
readonly attribute DOMString delivery; // could be "sent" or "received" | |||
readonly attribute DOMString sender; | readonly attribute DOMString sender; | ||
readonly attribute DOMString receiver; | readonly attribute DOMString receiver; | ||
readonly attribute DOMString body; | readonly attribute DOMString body; | ||
readonly attribute Date timestamp; | readonly attribute Date timestamp; | ||
readonly attribute boolean read; | |||
}; | }; | ||
Comments: | Comments: | ||
* | * We have .sender and .receiver because someone can have multiple number or change numbers. We could merge them to .number if that seems necessary. | ||
[Constructor] | |||
interface SmsFilter { | interface SmsFilter { | ||
Date | Date? startDate; | ||
Date | Date? endDate; | ||
DOMString[] | DOMString[]? numbers; | ||
DOMString | [TreatNullAs=EmptyString, TreatUndefinedAs=EmptyString] | ||
DOMString? delivery; // whether "sent" or "received" | |||
boolean? read; | |||
}; | }; | ||
Comments: | Comments: | ||
* | * When we will have MMS support, we would have to add a .type property to allow looking for SMS or MMS. | ||
* For the moment, there is no way to filter according to the content of a message because we didn't find a nice way to do it. This could be added later though. | |||
* | |||
interface SmsIterator { | interface SmsIterator { | ||
Line 76: | Line 76: | ||
In addition of these interfaces, there is a new event: | In addition of these interfaces, there is a new event: | ||
[Constructor(DOMString type, optional SmsEventInit smsEventInitDict)] | |||
interface SmsEvent : Event | interface SmsEvent : Event | ||
{ | { | ||
readonly attribute SmsMessage message; | |||
}; | |||
dictionary SmsEventInit : EventInit { | |||
SmsMessage message; | |||
} | |||
The ''SmsEvent'' is used for the following events: | The ''SmsEvent'' is used for the following events: | ||
Line 91: | Line 93: | ||
These events carry the SMS in ''event.message''. | These events carry the SMS in ''event.message''. | ||
A security story has to be defined for these events. | A security story has to be defined for these events. | ||
[[Category:Web APIs]] |