Very helpful summary, Jonas. I learned a few things there myself.

—
Josh Carpenter
UX Designer
Mozilla

On Nov 9, 2012, at 12:43 AM, Jonas Sicking <[email protected]> wrote:

> On Wed, Nov 7, 2012 at 6:09 PM, Yusuke YAMAMOTO
> <[email protected]> wrote:
>> Hi all,
>> 
>> We want to know "all" about of how to launch "other" apps.
>> We know that there are four types of launch method as below.
>> So if our recognition are wrong( or not enough) could you point out of that.
>> 
>> 1.WebActivities API, SystemMessage API
>> 2.<a href=…>
>> 3.document.location.href
>> 4.window.open()
> 
> The following ways are the ways that an app can be launched:
> 
> 1. App.launch()
> 2. WebActivities
> 3. System messages
> 4. <iframe mozapp>
> 
> However there are important limitations on all of them. I'll take them
> in reverse order.
> 
> First off, 4 is only available to the "system app". I.e. basically
> only Firefox OS itself can use this method for launching apps. This is
> basically the low-level primitive that is used any time an app is
> launched.
> 
> For 3, system messages is generally not something that a normal app
> can initiate to launch another app. System messages are generally only
> fired in response to things like incoming SMS messages or phone calls,
> alarms that the app itself has scheduled, etc. We will surely add more
> system messages in the future (such as Push API, a system message for
> when the user gets data connection or mobile connection).
> 
> Technically all different types of system messages should likely be
> enumerated in the table above. In fact, WebActivities use system
> messages to launch the app which was selected by the user.
> 
> So number 2, WebActivities, is basically just a special case of number
> 3. However since you were asking about apps launching each other it
> seems important enough to point out separately. WebActivities can be
> used by one app to launch another app. However the restriction is that
> the app doesn't have direct control over choosing which app is
> launched. If there are several apps installed which implements a given
> activity the user is in charge of choosing which one is launched and
> the app has no control over this.
> 
> And finally, App.launch() can only be used to launch applications
> which an app can get a reference to. I.e. app A can only use
> app.launch() to launch app B if app A can get a reference to the App
> object for app B. This only happens in three cases:
> 1. A and B are coming from the same origin. This isn't possible in
> Firefox OS v1 since we have a one-app-per-origin restriction. Though
> this might change in the future.
> 2. App B was installed from app A. Most commonly app A is an appstore
> which the user used to install app B.
> 3. App A has a special privilege which allows it to enumerate all
> installed apps. So far we're only permitting this for built-in apps.
> 
> I hope that answers your question.
> 
> / Jonas
> _______________________________________________
> dev-b2g mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-b2g

_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to