Przekazywanie argumentów z/do aplikacji Cappuccino

Cappuccino Framework wyróżnia dwa rodzaje parametrów:

  • arguments - są to parametry interpretowane jako wartości bez kluczy
  • namedArguments - są to argumenty nazwane czyli posiadające parę klucz ⇒ wartość

Przekazanie argumentów do Cappuccino odbywa się poprzez URL. Daje to programiście możliwość zaimplementowania przywracania stanu aplikacji po naciśnięciu przycisku „Odśwież” w przeglądarce.

Przekazywanie parametrów do Cappuccino

Przykład przekazywania argumentów typu arguments:

http://localhost/index.html#ArgumentPierwszy/ArgumentDrugi/ArgumentTrzeci

Na końcu ścieżki do pliku po znaku ”#” przekazywane są kolejno argumenty oddzielone znakiem separacji ”/”.

Przykład przekazywania argumentów typu namedArguments:

http://localhost/index.html?Klucz1=Wartosc1&Klucz2=Wartosc2&Klucz3=Wartosc3

Argumenty nazwane są URL zapytaniem (query string)

Pobieranie argumentów w Cappuccino

Przykład pobierania argumentów typu arguments:

// URL: index.html#ArgumentPierwszy/ArgumentDrugi/ArgumentTrzeci
var arguments;
 
arguemtns = [CPApp arguments];
console.log([arguemtns description]);
// RETURNS: CPArray (ArgumentPierwszy,ArgumentDrugi,ArgumentTrzeci);
 
// ekwiawalentne zapytanie
arguments = [[CPApplication sharedApplication] arguments];
console.log([arguemtns description]);
// RETURNS: CPArray (ArgumentPierwszy,ArgumentDrugi,ArgumentTrzeci);

Ciekawostką jest że przekazanie argumentu #debug rejestruje debuger:

// Kawałek kodu z CPApplication.j
if([args containsObject:"debug"])
     CPLogRegister(CPLogPopup);

Przykład pobierania argumentów typu namedArguments:

// URL: index.html?Klucz1=Wartosc1&Klucz2=Wartosc2&Klucz3=Wartosc3
var namedArguments = [CPApp namedArguments];
console.log([namedArguments description]);
// RETURNS: CPDictionary {Klucz1:Wartosc1,Klucz2:Wartosc21,Klucz3:Wartosc3}

Ustawianie argumentów w Cappuccino

Przykład ustawiania argumentów typu arguments

AppController.j
@import <Foundation/CPObject.j> 
 
@implementation AppController : CPObject 
{
}
 
- (void)applicationDidFinishLaunching:(CPNotification)aNotification 
{
	 var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask],
		 contentView = [theWindow contentView];
 
	var theButton = [[CPButton alloc] initWithFrame:CGRectMake(0, 0, 300, 24)];
	[theButton setTitle:@"Ustaw argumenty"];
	[theButton setAction:@selector(setArguments:)];
	[theButton setTarget:self];
 
	[contentView addSubview:theButton];
 
	[theWindow orderFront:self];
}
 
-(void)setArguments:(id)sender 
{ 
	var sharedApplication = [CPApplication sharedApplication]; 
	var args = [CPArray arrayWithObjects:@"param1=value1", @"param2", "param3=Cappuccino & Objective-J", nil]; 
	[sharedApplication setArguments:args]; 
}
 
@end;

Ustawianie argumentów typu namedArguments „nie jest możliwe” można tylko odczytywać te argumenty.

Jest możliwe ale wymaga to przeładowania strony - czyli klasyczny link
cappuccino/przekazywanie_argumentow_do_aplikacji_cappuccino.txt · ostatnio zmienione: 2010/01/04 00:55 przez widmogrod
 
Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki