Files
LayaNative2.0/Conch/source/domsupport/Navigator.ts
T
2020-11-11 16:17:13 +08:00

124 lines
3.0 KiB
TypeScript

interface NavigatorID {
appName: string;
appVersion: string;
platform: string;
product: string;
productSub: string;
userAgent: string;
vendor: string;
vendorSub: string;
}
interface NavigatorOnLine {
onLine: boolean;
}
interface PositionError {
code: number;
message: string;
toString(): string;
PERMISSION_DENIED: number;
POSITION_UNAVAILABLE: number;
TIMEOUT: number;
}
interface PositionCallback {
(position: Position): void;
}
interface PositionErrorCallback {
(error: PositionError): void;
}
interface Coordinates {
accuracy: number;
altitude: number;
altitudeAccuracy: number;
heading: number;
latitude: number;
longitude: number;
speed: number;
}
interface Position {
coords: Coordinates;
timestamp: number;
}
interface PositionOptions {
enableHighAccuracy?: boolean;
timeout?: number;
maximumAge?: number;
}
interface Geolocation {
clearWatch(watchId: number): void;
getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): void;
watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback, options?: PositionOptions): number;
}
interface NavigatorGeolocation {
geolocation: Geolocation;
}
class Navigator implements NavigatorID, NavigatorOnLine, NavigatorGeolocation {
//NavigatorID
get appName():string{ return 'Netscape';}
get appVersion(): string{ return this.userAgent};
get platform():string{return window.layabox.devinfo.os};
product: string;
productSub: string;
get userAgent(): string{
var os=window.layabox.devinfo.os;
if(os=="ios")
return "LayaBox(iPhone; CPU iPhone OS Mac OS X)";
else if(os=="android")
return "LayaBox Android";
else
return 'LayaBox/2.1';
};
vendor: string;
vendorSub: string;
get sv():number{
var v:string=window.layabox.devinfo.osversion;
var t:number=parseFloat(v);
if(isNaN(t))
{
t=v.charCodeAt(0)-71;
}
return t;
};
//NavigatorOnLine
onLine: boolean;
//NavigatorGeolocation
geolocation: Geolocation;
get appCodeName(): string{ return 'Mozilla'; }
appMinorVersion: string;
browserLanguage: string;
connectionSpeed: number;
cookieEnabled: boolean;
cpuClass: string;
get language(): string{ return 'zh-CN';};
maxTouchPoints: number;
msManipulationViewsEnabled: boolean;
msMaxTouchPoints: number;
msPointerEnabled: boolean;
pointerEnabled: boolean;
systemLanguage: string;
get userLanguage(): string{return 'zh-CN';}
webdriver: boolean;
constructor(){
}
getGamepads(): Gamepad[]{
return null;
}
javaEnabled(): boolean{return false;}
vibrate(pattern: number | number[]): boolean{
return false;
}
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void{
}
}