www.webOShelp.net

Get the latest on:webOS Developers' RSS FeedwebOS Facebook page webOS Twitter Feed

Home Resources API Reference Mojo.Controller.StageController.pushScene()

Mojo.Controller.StageController.pushScene()

 

pushScene (sceneArguments)

Pushes a new scene, passing in the optional sceneArguments.

sceneArguments can be any number of arguments of any type. They are simply passed through to the target scene.

Example usage:

StageAssistant.prototype.setup = function() {
   Mojo.Controller.stageController.pushScene ("first");
}

Cross-App Launch

You can also in some situations push a scene from another application onto your application's stack for a faster, more seamless transition between apps.  This is especially useful if the other application is being used simply to gather a piece of data to be returned to the calling application.

Camera

This example shows how you could use the Camera application within your application through a cross-app launch.  This requires that you call thepushScene method just as with any scene push, but include sceneArguments that indicate an application launch is required:

this.someAssistant.stageController.pushScene(
  {appId :'com.palm.app.camera', name: 'capture'},
  {sublaunch : true}
); 

When the picture is taken or canceled, control will be returned back to your scene with a call to the scene's activatemethod, just as with any scene pop. However, unlike the typical scene lifecycle, there will be a response object passed as an argument to the activate method:

CameraAssistant.prototype.activate = function(response){
  if (response)   {
    if (response.returnValue)  {
      this.showDialogBox('Picture Taken', response.filename);
    } else  { 
      this.showDialogBox('No Picture', "");       
    }
  } else {
    Mojo.Log.info("Picture not requested");
  }
};

People Picker

This example demonstrates launching the People Picker to allow the user to select a contact and return that contact's information to the calling application:

PeoplePickerAssistant.prototype.getContact = function(event){
    this.contactRequest = true;
    this.controller.stageController.pushScene(
            { appId :'com.palm.app.contacts', name: 'list' },
            { mode: 'picker', message: "headerMessage" }
        );
};

After the user makes a selection from the list, the details are returned to the the calling application through the scene's activate method:

PeoplePickerAssistant.prototype.activate = function(response){
    if (response)   {
        if (response.personId)  {
            this.showDialogBox('Contact Received', response.personId);
        } else  {
            this.showDialogBox('Contact Request Failed', "");
        }
    } else {
         Mojo.Log.info("No Contact Requested");
    }

};
 

1 Comment

Feed
  1. If you want to access the data from the contact object you have to address it with result.details.record then you can use firstName and so on. It's a little bit confusing because there are no examples for that.

Add Comment


    • >:o
    • :-[
    • :'(
    • :-(
    • :-D
    • :-*
    • :-)
    • :P
    • :\
    • 8-)
    • ;-)