UNPKG

copay-crown

Version:

A Secure Crown Wallet

62 lines (51 loc) 1.56 kB
import { Injectable } from '@angular/core'; import { Logger } from '@nsalaun/ng-logger'; import { Platform } from 'ionic-angular'; @Injectable() export class PlatformProvider { public isAndroid: boolean; public isIOS: boolean; public isSafari: boolean; public isCordova: boolean; public isNW: boolean; public ua: string; public isMobile: boolean; public isDevel: boolean; constructor( private platform: Platform, private logger: Logger ) { let ua: any = navigator ? navigator.userAgent : null; if (!ua) { this.logger.info('Could not determine navigator. Using fixed string'); ua = 'dummy user-agent'; } // Fixes IOS WebKit UA ua = ua.replace(/\(\d+\)$/, ''); this.isAndroid = this.platform.is('android'); this.isIOS = this.platform.is('ios'); this.ua = ua; this.isCordova = this.platform.is('cordova'); this.isNW = this.isNodeWebkit(); this.isMobile = this.platform.is('mobile'); this.isDevel = !this.isMobile && !this.isNW; this.logger.info('PlatformProvider initialized.'); } public getBrowserName(): string { let userAgent = window.navigator.userAgent; let browsers = { chrome: /chrome/i, safari: /safari/i, firefox: /firefox/i, ie: /internet explorer/i }; for (let key in browsers) { if (browsers[key].test(userAgent)) { return key; } }; return 'unknown'; } public isNodeWebkit(): boolean { try { return (typeof require('nw.gui') !== "undefined"); } catch (e) { return false; } } }