mirror of
				https://github.com/NativeScript/NativeScript.git
				synced 2025-11-04 12:58:38 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			977 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			977 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { ios } from '../../utils';
 | 
						|
 | 
						|
class MainScreen {
 | 
						|
	private _screen: UIScreen;
 | 
						|
 | 
						|
	private get screen(): UIScreen {
 | 
						|
		if (!this._screen) {
 | 
						|
			// NOTE: may not want to cache this value with SwiftUI app lifecycle based apps (using NativeScriptViewFactory) given the potential of multiple scenes
 | 
						|
			const window = ios.getWindow();
 | 
						|
			this._screen = window ? window.screen : UIScreen.mainScreen;
 | 
						|
		}
 | 
						|
 | 
						|
		return this._screen;
 | 
						|
	}
 | 
						|
 | 
						|
	get widthPixels(): number {
 | 
						|
		return this.widthDIPs * this.scale;
 | 
						|
	}
 | 
						|
	get heightPixels(): number {
 | 
						|
		return this.heightDIPs * this.scale;
 | 
						|
	}
 | 
						|
	get scale(): number {
 | 
						|
		return this.screen.scale;
 | 
						|
	}
 | 
						|
	get widthDIPs(): number {
 | 
						|
		return this.screen.bounds.size.width;
 | 
						|
	}
 | 
						|
	get heightDIPs(): number {
 | 
						|
		return this.screen.bounds.size.height;
 | 
						|
	}
 | 
						|
 | 
						|
	public _updateMetrics(): void {
 | 
						|
		// UIScreen handles the update on iOS
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
export class Screen {
 | 
						|
	static mainScreen = new MainScreen();
 | 
						|
}
 | 
						|
 | 
						|
// This retains compatibility with NS6
 | 
						|
export const screen = Screen;
 |