WebAPI/WebSMS: Difference between revisions
Line 19: | Line 19: | ||
interface SmsManager | interface SmsManager | ||
{ | { | ||
SmsRequest send(in DOMString number, in DOMString message); | |||
void suggestSend(in DOMString number, in DOMString message); | void suggestSend(in DOMString number, in DOMString message); | ||
unsigned short getNumberOfMessagesForText(in DOMString text); | unsigned short getNumberOfMessagesForText(in DOMString text); | ||
Line 35: | Line 35: | ||
readonly attribute unsigned short readyState; | readonly attribute unsigned short readyState; | ||
readonly attribute unsigned short errorCode; | readonly attribute unsigned short errorCode; | ||
attribute | attribute EventListener onsuccess; | ||
attribute | attribute EventListener onerror; | ||
attribute readonly | attribute readonly SmsMessage? message; | ||
}; | }; | ||
Line 55: | Line 55: | ||
In addition of these interfaces, there is a new event: | In addition of these interfaces, there is a new event: | ||
interface SmsEvent : | interface SmsEvent : Event | ||
{ | { | ||
void initSmsEvent(in DOMString eventTypeArg, | void initSmsEvent(in DOMString eventTypeArg, | ||
in boolean canBubbleArg, | in boolean canBubbleArg, | ||
in boolean cancelableArg, | in boolean cancelableArg, | ||
in | in SmsMessage message); | ||
readonly attribute | readonly attribute SmsMessage message; | ||
} | } | ||
Revision as of 15:01, 30 August 2011
Steps
In a first time, we want an API that allows to do a SMS Messaging application with similar features that the stock one.
Some advanced functionality might be added after. For example, a "before-sms-send" event that would allow preventing sending a SMS with .preventDefault().
MMS support will be considered later.
Status
You can find some patches here: bug 674725. They are implementing some parts of the proposed API except delete, get and SmsRequest. Also, SmsMessage isn't fully implemented. Those patches are still work in progress.
Proposed API
This API is work in progress and mostly reflect what is implemented and is going to be really soon. Some changes are going to happen. See the comments below each interfaces.
navigator.sms returns an object with the following interface:
interface SmsManager { SmsRequest send(in DOMString number, in DOMString message); void suggestSend(in DOMString number, in DOMString message); unsigned short getNumberOfMessagesForText(in DOMString text); SMSRequest delete(in long uuid); SMSRequest (request.result == SMSIterator) get( { person: "", date: "", direction: "forward" or "backward" } ); };
Comments:
- send and suggestSend could take an array of numbers.
- suggestSend could be removed in favor of Web Activities.
- maybe delete shouldn't return a SMSRequest?
interface SmsRequest { readonly attribute unsigned short readyState; readonly attribute unsigned short errorCode; attribute EventListener onsuccess; attribute EventListener onerror; attribute readonly SmsMessage? message; };
interface SmsMessage { readonly attribute long uuid; readonly attribute DOMString sender; readonly attribute DOMString receiver; readonly attribute DOMString body; readonly attribute Date timestamp; };
Comments:
- Have an array of receiver?
- Add a status attribute? (with the following value: sending, sent, delivered (not sure), received)
- Merge sender/receiver and use the status attribute?
In addition of these interfaces, there is a new event:
interface SmsEvent : Event { void initSmsEvent(in DOMString eventTypeArg, in boolean canBubbleArg, in boolean cancelableArg, in SmsMessage message); readonly attribute SmsMessage message; }
The SmsEvent is used for the following events:
smssent: happens on all window when a SMS is sent; smsdelivered: happens on all window when a SMS is delivered to the recipient; smsreceived: happens on all window when a SMS is received.
These events carry the SMS in event.message. A security story has to be defined for these events.