NativeScript Core Modules compatibility package for building native iOS and Android apps using JavaScript and CSS
—
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.
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);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-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-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;
}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