or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

app-component-creation.mdautomation.mdbuild-configuration.mdindex.mdnavigation-apis.mdnetwork-apis.mdruntime-api.mdsystem-apis.mdvue-integration.md
tile.json

system-apis.mddocs/

System APIs

Device and system information APIs providing access to device capabilities, account information, and system configuration with Baidu Smart Program specific enhancements.

Capabilities

Get System Information

Get comprehensive system and device information.

/**
 * Get system information asynchronously
 * @param options - Success, fail, and complete callbacks
 * @returns Promise that resolves with system information
 */
function getSystemInfo(options?: SystemInfoOptions): Promise<SystemInfo>;

/**
 * Get system information synchronously
 * @returns System information object
 */
function getSystemInfoSync(): SystemInfo;

interface SystemInfoOptions {
  success?(result: SystemInfo): void;
  fail?(error: any): void;
  complete?(): void;
}

interface SystemInfo {
  brand: string; // Device brand
  model: string; // Device model
  pixelRatio: number; // Device pixel ratio
  screenWidth: number; // Screen width in pixels
  screenHeight: number; // Screen height in pixels
  windowWidth: number; // Window width in pixels
  windowHeight: number; // Window height in pixels
  statusBarHeight: number; // Status bar height in pixels
  language: string; // System language
  version: string; // System version
  system: string; // Operating system with version
  platform: string; // Platform (ios/android)
  fontSizeSetting: number; // Font size setting
  SDKVersion: string; // SDK version
  safeArea: SafeArea; // Safe area coordinates
  safeAreaInsets: SafeAreaInsets; // Safe area insets
  [key: string]: any; // Additional platform-specific properties
}

interface SafeArea {
  left: number;
  right: number;
  top: number;
  bottom: number;
  width: number;
  height: number;
}

interface SafeAreaInsets {
  top: number;
  left: number;
  right: number;
  bottom: number;
}

Usage Examples:

import uni from "@dcloudio/uni-mp-baidu";

// Async version with promise
uni.getSystemInfo().then((systemInfo) => {
  console.log('Device brand:', systemInfo.brand);
  console.log('Screen size:', systemInfo.screenWidth, 'x', systemInfo.screenHeight);
  console.log('Safe area:', systemInfo.safeArea);
});

// Async version with callback
uni.getSystemInfo({
  success: (res) => {
    console.log('System info:', res);
    console.log('Platform:', res.platform);
    console.log('System version:', res.system);
  },
  fail: (err) => {
    console.error('Failed to get system info:', err);
  }
});

// Synchronous version
try {
  const systemInfo = uni.getSystemInfoSync();
  console.log('Device model:', systemInfo.model);
  console.log('Window size:', systemInfo.windowWidth, 'x', systemInfo.windowHeight);
  console.log('Status bar height:', systemInfo.statusBarHeight);
} catch (error) {
  console.error('Error getting system info:', error);
}

Get Account Information

Get current mini program account information.

/**
 * Get account information synchronously
 * @returns Account information including mini program and plugin details
 */
function getAccountInfoSync(): AccountInfo;

interface AccountInfo {
  miniProgram: {
    appId: string; // Mini program app ID
  };
  plugin?: {
    appId: string; // Plugin app ID (if running as plugin)
    version: string; // Plugin version
  };
}

Usage Examples:

// Get account information
const accountInfo = uni.getAccountInfoSync();
console.log('Mini program app ID:', accountInfo.miniProgram.appId);

if (accountInfo.plugin) {
  console.log('Running as plugin:', accountInfo.plugin.appId);
  console.log('Plugin version:', accountInfo.plugin.version);
}

Platform-Specific Features

Baidu Smart Program Enhancements

The system APIs in uni-mp-baidu include several enhancements specific to the Baidu Smart Program platform:

UUID Generation

  • Automatically generates and maintains a unique device identifier
  • Persists across app sessions using local storage
  • Available as systemInfo.deviceId

Safe Area Calculation

  • Automatically calculates safe area insets for different device types
  • Handles various screen configurations and orientations
  • Provides consistent safe area data across different Baidu Smart Program versions

Environment Information

  • getAccountInfoSync() is mapped to Baidu's swan.getEnvInfoSync()
  • Provides both mini program and plugin information when available
  • Returns consistent format across different Baidu Smart Program environments

System Information Properties

The SystemInfo object includes standard cross-platform properties plus Baidu-specific enhancements:

Standard Properties

  • brand, model: Device manufacturer and model
  • pixelRatio: Device pixel density ratio
  • screenWidth, screenHeight: Physical screen dimensions
  • windowWidth, windowHeight: Available window dimensions
  • statusBarHeight: System status bar height
  • language: System language setting
  • version, system: OS version information
  • platform: Operating system (ios/android)

Enhanced Properties

  • deviceId: Generated unique device identifier
  • safeArea: Calculated safe area boundaries
  • safeAreaInsets: Safe area margin values
  • Additional Baidu Smart Program specific properties

Error Handling

// Handle potential errors in system API calls
try {
  const systemInfo = uni.getSystemInfoSync();
  // Process system info
} catch (error) {
  console.error('System API error:', error);
  // Fallback handling
}

// Async error handling
uni.getSystemInfo({
  success: (res) => {
    // Success handling
  },
  fail: (err) => {
    console.error('Failed to get system info:', err);
    // Error handling
  },
  complete: () => {
    // Always executed
  }
});