On 7 Dec 2012, at 11:04, Ross Gardler wrote:
> On 6 December 2012 17:27, Scott Wilson <[email protected]>wrote:
>
>> On 6 Dec 2012, at 14:05, Ross Gardler wrote:
>>
>>> On 6 December 2012 13:34, Franklin, Matthew B. <[email protected]>
>> wrote:
>>>
>>>>> -----Original Message-----
>>>>> From: Ross Gardler [mailto:[email protected]]
>>>>> Sent: Thursday, December 06, 2012 5:54 AM
>>>>> To: dev
>>>>> Subject: Host Navigation API
>>>>>
>>>>> Does it make sense to implement a feature that provides an API to
>> allow a
>>>>> widget to instruct a host platform to take some navigation action? Does
>>>>> such an API already exist?
>>>>
>>>> I don't know about in W3C widgets; but this pattern is very common in
>>>> OpenSocial Gadgets. OpenSoical has a whole RPC layer that it uses to
>>>> marshal requests between the widget and its container. In my desire to
>> see
>>>> OpenSocial gadget functionality align more with W3C, I could definitely
>>>> envision the case where you would want to start to include this
>> capability
>>>> in W3C widgets.
>>>>
>>>
>>> I should have thought to look at OpenSocial.
>>
>> If we can reuse the OpenSocial APIs - or at least have close functional
>> alignment - that would be useful.
>>
>>
> I've investigated the OpenSocial APIs. My intiial thoughts are documented
> at [1]
>
> Here's a summary (I'd appreciate a full review of the proposal at [1] if
> anyone has the time)
>
> The Action Contributions API can be used and is ideal for the general use
> case described above. It is optimised for adding actions that a user can
> opt to take in the container (e.g. adding a menu item to the UI so users
> can take an action there).
>
> However, for the specific use case I described (opening a URL in the
> container, without further user intervention) there appears to be a better
> solution a simpler solution in the (incubating) gadgets.views.openUrl
> method.
That used to be in the W3C Widgets Interface API spec, but was removed as
no-one could come up with a use case. Looks like you found one :)
We've kept it in the wookie-ext feature as widget.openURL(). However all it
does there is call:
window.open(url);
... whereas what you need is for the implementation to notify the parent of the
intent of the widget to open a URL and let it handle things.
So one approach is to override the implementation of widget.openURL to post a
message to the parent container - the source is in
/features/wookie-ext/wookie.js
S
>
> Ross
>
> [1] https://github.com/OpenDirective/florence_win8/wiki/Host-Navigation-API