CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-tns-core-modules

NativeScript Core Modules compatibility package for building native iOS and Android apps using JavaScript and CSS

Pending
Overview
Eval results
Files

application.mddocs/

Application Management

Core application lifecycle, navigation, and configuration management for NativeScript applications. This module provides essential functionality for app startup, event handling, and platform-specific application management.

Capabilities

Application Namespace

Main application management interface providing lifecycle control and system integration.

/**
 * Main application management namespace
 */
namespace Application {
  // Event constants
  const launchEvent: "launch";
  const displayedEvent: "displayed";
  const suspendEvent: "suspend";
  const resumeEvent: "resume";
  const exitEvent: "exit";
  const lowMemoryEvent: "lowMemory";
  const orientationChangedEvent: "orientationChanged";
  const uncaughtErrorEvent: "uncaughtError";
  
  // Core application functions
  function run(entry?: any): void;
  function getMainEntry(): any;
  function getRootView(): View;
  function orientation(): "portrait" | "landscape" | "unknown";
  function hasLaunched(): boolean;
  function getNativeApplication(): any;
  
  // Resource and CSS management
  function setResources(resources: any): void;
  function setCssFileName(cssFileName: string): void;
  function getCssFileName(): string;
  function loadAppCss(): void;
  function addCss(cssText: string): void;
  
  // Event handling
  function on(eventName: string, callback: Function): void;
  function off(eventName: string, callback?: Function): void;
  
  // Platform-specific instances
  const android: AndroidApplication;
  const ios: iOSApplication;
}

Usage Examples:

import { Application } from "tns-core-modules";

// Application startup
Application.run({ moduleName: "main-page" });

// Listen to application events
Application.on(Application.launchEvent, (args) => {
  console.log("App launched");
});

Application.on(Application.suspendEvent, () => {
  console.log("App suspended");
});

// Check application state
if (Application.hasLaunched()) {
  console.log("App has already launched");
}

// Get current orientation
const orientation = Application.orientation();
console.log("Current orientation:", orientation);

Application Event Interfaces

Event data interfaces for application lifecycle events.

interface ApplicationEventData {
  eventName: string;
  object: any;
}

interface LaunchEventData extends ApplicationEventData {
  android?: any;
  ios?: any;
}

interface OrientationChangedEventData extends ApplicationEventData {
  newValue: string;
  oldValue: string;
}

interface UnhandledErrorEventData extends ApplicationEventData {
  android?: any;
  ios?: any;
  error: Error;
}

interface CssChangedEventData extends ApplicationEventData {
  cssFile?: string;
  cssText?: string;
}

Android Application Interface

Android-specific application management interface.

interface AndroidApplication {
  context: any; // Android Context
  currentContext: any;
  foregroundActivity: any;
  startActivity: any;
  packageName: string;
  hasActionBar: boolean;
  
  // Event handling
  on(eventName: string, callback: Function): void;
  off(eventName: string, callback?: Function): void;
}

// Android-specific event data interfaces
interface AndroidActivityEventData extends ApplicationEventData {
  activity: any;
  intent: any;
}

interface AndroidActivityRequestPermissionsEventData extends AndroidActivityEventData {
  requestCode: number;
  permissions: string[];
  grantResults: number[];
}

interface AndroidActivityResultEventData extends AndroidActivityEventData {
  requestCode: number;
  resultCode: number;
  intent: any;
}

iOS Application Interface

iOS-specific application management interface.

interface iOSApplication {
  delegate: any; // UIApplicationDelegate
  rootController: any;
  window: any;
  
  // Event handling
  on(eventName: string, callback: Function): void;
  off(eventName: string, callback?: Function): void;
}

Application Settings

Persistent key-value storage for application configuration and user preferences.

/**
 * Application settings namespace for persistent storage
 */
namespace ApplicationSettings {
  // String operations
  function setString(key: string, value: string): void;
  function getString(key: string, defaultValue?: string): string;
  
  // Boolean operations
  function setBoolean(key: string, value: boolean): void;
  function getBoolean(key: string, defaultValue?: boolean): boolean;
  
  // Numeric operations
  function setNumber(key: string, value: number): void;
  function getNumber(key: string, defaultValue?: number): number;
  
  // General operations
  function hasKey(key: string): boolean;
  function remove(key: string): void;
  function clear(): void;
  function flush(): void;
  function getAllKeys(): string[];
}

Usage Examples:

import { ApplicationSettings } from "tns-core-modules";

// Store user preferences
ApplicationSettings.setString("username", "john_doe");
ApplicationSettings.setBoolean("darkMode", true);
ApplicationSettings.setNumber("fontSize", 16);

// Retrieve settings with defaults
const username = ApplicationSettings.getString("username", "guest");
const isDarkMode = ApplicationSettings.getBoolean("darkMode", false);
const fontSize = ApplicationSettings.getNumber("fontSize", 14);

// Check if setting exists
if (ApplicationSettings.hasKey("username")) {
  console.log("Username is configured");
}

// Remove specific setting
ApplicationSettings.remove("tempData");

// Clear all settings
ApplicationSettings.clear();

Install with Tessl CLI

npx tessl i tessl/npm-tns-core-modules

docs

application.md

data-binding.md

file-system.md

http-client.md

image-handling.md

index.md

platform-utils.md

ui-components.md

tile.json