- From: KOMATSU Kensaku <kensaku.komatsu@gmail.com>
- Date: Tue, 6 Mar 2012 09:51:27 +0900
- To: Rick Byers <rbyers@google.com>
- Cc: timeless <timeless@gmail.com>, WebIntents <public-web-intents@w3.org>
- Message-ID: <CAKopxYwMXU43rMA4CtbZr_xjdwGEtsKh5y1Cui7WFM1voYbBjQ@mail.gmail.com>
I like the way A as an optional parameter :) 2012/3/6 Rick Byers <rbyers@google.com> > +1 to an extra optional additional parameter. > > > On Mon, Mar 5, 2012 at 10:22 PM, timeless <timeless@gmail.com> wrote: > >> You can use "optional dict extras" for A to address Rachel's concern... >> >> With that, I favor A >> >> On 3/5/12, Rachel Blum <groby@google.com> wrote: >> > Initial reaction is C) It is almost identical to A), except that intents >> > without extras don't need an extra parameter. >> > >> > I'm not to fond of B), since it replicates a dictionary-like API on a >> > non-dictionary object. >> > >> > Rachel >> > On Mar 5, 2012 1:54 PM, "James Hawkins" <jhawkins@google.com> wrote: >> > >> >> TL;DR - We need a method to set extra data on the intent payload. >> Ideas? >> >> >> >> For several use cases, extra data which augments the payload needs to >> >> be passed either to or from the client. For example a picker which >> >> returns files may want to pass along the filename of the picked file. >> >> >> >> There are several ways to augment the API to allow providing extras. >> >> Let's go over constraints first: >> >> * Must be allowed to pass several extras. >> >> * It follows from above that the extras must be named. >> >> - We could impose ordering in an array as a solution, but that is >> >> extremely fragile! >> >> >> >> >From the constraints it's clear we need a dictionary for extras. >> >> Android Intents agrees and uses a 'Bundle', which is "a mapping from >> >> String values to various Parcelable types." Different parlance, same >> >> concept. >> >> >> >> Android >> >> ====== >> >> >> >> >From the Android Intents spec: >> >> >> >> Intent putExtra(String name, [type] value); >> >> >> >> putExtra is overloaded for each native [type], e.g., double, int, >> >> Bundle, Parcelable, etc. >> >> >> >> >> >> Possible Solutions >> >> ============== >> >> >> >> A) Add an |extras| parameter to the Intent constructor: >> >> >> >> Currently: >> >> [Constructor(in string action, in string type, in any data) raises >> >> DOMException] >> >> >> >> Modified: >> >> [Constructor(in string action, in string type, in any data, in >> >> Dictionary extras) raises DOMException] >> >> >> >> e.g., >> >> >> >> var dict = {filename: 'image.png', size: 20000}; >> >> var intent = new Intent('http://webintents.org/save', 'image/png', >> >> imageData, dict); >> >> >> >> >> >> B) Add a method to set an extra on Intent: >> >> >> >> interface Intent { >> >> ... >> >> void setExtra(DOMString name, any value); >> >> } >> >> >> >> e.g., >> >> >> >> var intent = new Intent('http://webintents.org/save', 'image/png', >> >> imageData); >> >> intent.setExtra('filename', 'image.png'); >> >> intent.setExtra('size', 20000); >> >> >> >> >> >> C) Add a method to set the entire |extras| dictionary on Intent: >> >> >> >> interface Intent { >> >> ... >> >> void setExtras(Dictionary extras); >> >> } >> >> >> >> e.g., >> >> >> >> var intent = new Intent('http://webintents.org/save', 'image/png', >> >> imageData); >> >> >> >> var dict = {filename: 'image.png', size: 20000}; >> >> intent.setExtras(dict); >> >> >> >> >> >> What are your thoughts, preferences, anecdotal evidence? I'd love to >> >> hear your feedback on the issue. Any other methods than those I >> >> listed? >> >> >> >> Thanks, >> >> James >> >> >> >> >> > >> >> -- >> Sent from my mobile device >> >> >
Received on Tuesday, 6 March 2012 00:51:55 UTC