UNPKG

ng-yunzai-mobile

Version:

1. 适配yunzai_uni_app_x

162 lines 14.7 kB
/** * @fileoverview added by tsickle * Generated from: devices/device.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /* * @Author: cuihaonan * @Email: devcui@outlook.com * @Date: 2021-04-07 13:55:19 * @LastEditTime: 2021-04-07 14:08:24 * @LastEditors: cuihaonan * @Description: Basic description * @FilePath: /angular-mobile-npm-package/projects/ng-yunzai-mobile/devices/device.service.ts * @LICENSE: NONE */ import { Inject, Injectable, Injector } from "@angular/core"; import { Android } from "./android"; import { IOS } from "./ios"; import { WechatMp } from "./wechat.mp"; import { WechatMicro } from "./wechat.micro"; import { Browser } from "./browser"; import { Yiban } from "./yiban"; import { YunzaiIm } from "./yunzai.im"; import { Dingtalk } from "./dingtalk"; import { BASE_CLIENT } from "../client"; import { YunzaiOaUniAppX } from "./yunzai.oa-uni-app-x"; import * as i0 from "@angular/core"; import * as i1 from "../client/base.client"; /** @enum {string} */ const DeviceType = { // 浏览器 BROWSER: "BROWSER", // 苹果 IOS: "IOS", // 安卓 ANDROID: "ANDROID", // 公众号 WECHAT_MP: "WECHAT_MP", // 小程序 WECHAT_MICRO: "WECHAT_MICRO", // YIBAN YIBAN: "YIBAN", // YUNZAI_IM YUNZAI_IM: "YUNZAI_IM", // YUNZAI_OA_UNI_APP_X YUNZAI_OA_UNI_APP_X: "YUNZAI_OA_UNI_APP_X", // 钉钉 DINGTALK: "DINGTALK", }; export { DeviceType }; export class DeviceService { // tslint:disable-next-line: no-use-before-declare /** * @param {?} inject * @param {?} baseclient */ constructor(inject, baseclient) { this.inject = inject; this.baseclient = baseclient; if (this.baseclient.alwaysBrowser) { this.native = this.inject.get(Browser); return; } switch (this.getType()) { case DeviceType.YIBAN: this.native = this.inject.get(Yiban); break; case DeviceType.ANDROID: this.native = this.inject.get(Android); break; case DeviceType.IOS: this.native = this.inject.get(IOS); break; case DeviceType.YUNZAI_IM: this.native = this.inject.get(YunzaiIm); break; case DeviceType.YUNZAI_OA_UNI_APP_X: this.native = this.inject.get(YunzaiOaUniAppX); break; case DeviceType.DINGTALK: this.native = this.inject.get(Dingtalk); break; case DeviceType.WECHAT_MP: this.native = this.inject.get(WechatMp); break; case DeviceType.WECHAT_MICRO: this.native = this.inject.get(WechatMicro); break; default: this.native = this.inject.get(Browser); break; } } /** * @return {?} */ ngOnInit() { } /** * 获取设备类型 * @return {?} */ getType() { /** @type {?} */ const agent = window.navigator.userAgent.toLowerCase(); if (/yiban/.test(agent)) { return DeviceType.YIBAN; } if (/miniprogram/.test(agent)) { return DeviceType.WECHAT_MICRO; } if (/yunzai_im/.test(agent)) { return DeviceType.YUNZAI_IM; } if (/uni-app-x/.test(agent)) { return DeviceType.YUNZAI_OA_UNI_APP_X; } if (/dingtalk/.test(agent)) { return DeviceType.DINGTALK; } if (/iphone|ipod|ipad/.test(agent) && /mobile/.test(agent) && /yunzai/.test(agent)) { return DeviceType.IOS; } if (/android/.test(agent) && /mobile/.test(agent) && /yunzai/.test(agent)) { return DeviceType.ANDROID; } if (/micromessenger/.test(agent)) { return DeviceType.WECHAT_MP; } return DeviceType.BROWSER; } } DeviceService.decorators = [ { type: Injectable, args: [{ providedIn: "root", },] } ]; /** @nocollapse */ DeviceService.ctorParameters = () => [ { type: Injector }, { type: undefined, decorators: [{ type: Inject, args: [BASE_CLIENT,] }] } ]; /** @nocollapse */ DeviceService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function DeviceService_Factory() { return new DeviceService(i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.BASE_CLIENT)); }, token: DeviceService, providedIn: "root" }); if (false) { /** @type {?} */ DeviceService.prototype.native; /** * @type {?} * @private */ DeviceService.prototype.inject; /** * @type {?} * @private */ DeviceService.prototype.baseclient; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy15dW56YWktbW9iaWxlLyIsInNvdXJjZXMiOlsiZGV2aWNlcy9kZXZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFVQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFDLFdBQVcsRUFBYSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFLdEQsTUFBWSxVQUFVO0lBQ3BCLE1BQU07SUFDTixPQUFPLFdBQVk7SUFDbkIsS0FBSztJQUNMLEdBQUcsT0FBUTtJQUNYLEtBQUs7SUFDTCxPQUFPLFdBQVk7SUFDbkIsTUFBTTtJQUNOLFNBQVMsYUFBYztJQUN2QixNQUFNO0lBQ04sWUFBWSxnQkFBaUI7SUFDN0IsUUFBUTtJQUNSLEtBQUssU0FBVTtJQUNmLFlBQVk7SUFDWixTQUFTLGFBQWM7SUFDdkIsc0JBQXNCO0lBQ3RCLG1CQUFtQix1QkFBd0I7SUFDM0MsS0FBSztJQUNMLFFBQVEsWUFBYTtFQUN0Qjs7QUFP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QUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNwQjtZQUNBLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQztTQUN2QjtRQUNELElBQ0UsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDcEI7WUFDQSxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUM7U0FDM0I7UUFDRCxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQyxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUM7U0FDN0I7UUFDRCxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUM7SUFDNUIsQ0FBQzs7O1lBeEZGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQXpDMkIsUUFBUTs0Q0FrRHJCLE1BQU0sU0FBQyxXQUFXOzs7OztJQVAvQiwrQkFBbUI7Ozs7O0lBTVAsK0JBQXdCOzs7OztJQUN4QixtQ0FBbUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBAQXV0aG9yOiBjdWloYW9uYW5cclxuICogQEVtYWlsOiBkZXZjdWlAb3V0bG9vay5jb21cclxuICogQERhdGU6IDIwMjEtMDQtMDcgMTM6NTU6MTlcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0wNyAxNDowODoyNFxyXG4gKiBATGFzdEVkaXRvcnM6IGN1aWhhb25hblxyXG4gKiBARGVzY3JpcHRpb246IEJhc2ljIGRlc2NyaXB0aW9uXHJcbiAqIEBGaWxlUGF0aDogL2FuZ3VsYXItbW9iaWxlLW5wbS1wYWNrYWdlL3Byb2plY3RzL25nLXl1bnphaS1tb2JpbGUvZGV2aWNlcy9kZXZpY2Uuc2VydmljZS50c1xyXG4gKiBATElDRU5TRTogTk9ORVxyXG4gKi9cclxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QmFzZURldmljZX0gZnJvbSBcIi4vYmFzZS5kZXZpY2VcIjtcclxuaW1wb3J0IHtBbmRyb2lkfSBmcm9tIFwiLi9hbmRyb2lkXCI7XHJcbmltcG9ydCB7SU9TfSBmcm9tIFwiLi9pb3NcIjtcclxuaW1wb3J0IHtXZWNoYXRNcH0gZnJvbSBcIi4vd2VjaGF0Lm1wXCI7XHJcbmltcG9ydCB7V2VjaGF0TWljcm99IGZyb20gXCIuL3dlY2hhdC5taWNyb1wiO1xyXG5pbXBvcnQge0Jyb3dzZXJ9IGZyb20gXCIuL2Jyb3dzZXJcIjtcclxuaW1wb3J0IHtZaWJhbn0gZnJvbSBcIi4veWliYW5cIjtcclxuaW1wb3J0IHtZdW56YWlJbX0gZnJvbSBcIi4veXVuemFpLmltXCI7XHJcbmltcG9ydCB7RGluZ3RhbGt9IGZyb20gXCIuL2Rpbmd0YWxrXCI7XHJcbmltcG9ydCB7QkFTRV9DTElFTlQsIEJhc2VDbGllbnR9IGZyb20gXCIuLi9jbGllbnRcIjtcclxuaW1wb3J0IHtZdW56YWlPYVVuaUFwcFh9IGZyb20gXCIuL3l1bnphaS5vYS11bmktYXBwLXhcIjtcclxuXHJcbi8qKlxyXG4gKiDorr7lpIfnsbvlnotcclxuICovXHJcbmV4cG9ydCBlbnVtIERldmljZVR5cGUge1xyXG4gIC8vIOa1j+iniOWZqFxyXG4gIEJST1dTRVIgPSBcIkJST1dTRVJcIixcclxuICAvLyDoi7nmnpxcclxuICBJT1MgPSBcIklPU1wiLFxyXG4gIC8vIOWuieWNk1xyXG4gIEFORFJPSUQgPSBcIkFORFJPSURcIixcclxuICAvLyDlhazkvJflj7dcclxuICBXRUNIQVRfTVAgPSBcIldFQ0hBVF9NUFwiLFxyXG4gIC8vIOWwj+eoi+W6j1xyXG4gIFdFQ0hBVF9NSUNSTyA9IFwiV0VDSEFUX01JQ1JPXCIsXHJcbiAgLy8gWUlCQU5cclxuICBZSUJBTiA9IFwiWUlCQU5cIixcclxuICAvLyBZVU5aQUlfSU1cclxuICBZVU5aQUlfSU0gPSBcIllVTlpBSV9JTVwiLFxyXG4gIC8vIFlVTlpBSV9PQV9VTklfQVBQX1hcclxuICBZVU5aQUlfT0FfVU5JX0FQUF9YID0gXCJZVU5aQUlfT0FfVU5JX0FQUF9YXCIsXHJcbiAgLy8g6ZKJ6ZKJXHJcbiAgRElOR1RBTEsgPSBcIkRJTkdUQUxLXCIsXHJcbn1cclxuXHJcbmRlY2xhcmUgbGV0IHd4OiBhbnk7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZXZpY2VTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBuYXRpdmU6IEJhc2VEZXZpY2U7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11c2UtYmVmb3JlLWRlY2xhcmVcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdDogSW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgQEluamVjdChCQVNFX0NMSUVOVCkgcHJpdmF0ZSBiYXNlY2xpZW50OiBCYXNlQ2xpZW50XHJcbiAgKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuYmFzZWNsaWVudC5hbHdheXNCcm93c2VyKSB7XHJcbiAgICAgIHRoaXMubmF0aXZlID0gdGhpcy5pbmplY3QuZ2V0KEJyb3dzZXIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmdldFR5cGUoKSkge1xyXG4gICAgICBjYXNlIERldmljZVR5cGUuWUlCQU46XHJcbiAgICAgICAgdGhpcy5uYXRpdmUgPSB0aGlzLmluamVjdC5nZXQoWWliYW4pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIERldmljZVR5cGUuQU5EUk9JRDpcclxuICAgICAgICB0aGlzLm5hdGl2ZSA9IHRoaXMuaW5qZWN0LmdldChBbmRyb2lkKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEZXZpY2VUeXBlLklPUzpcclxuICAgICAgICB0aGlzLm5hdGl2ZSA9IHRoaXMuaW5qZWN0LmdldChJT1MpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIERldmljZVR5cGUuWVVOWkFJX0lNOlxyXG4gICAgICAgIHRoaXMubmF0aXZlID0gdGhpcy5pbmplY3QuZ2V0KFl1bnphaUltKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEZXZpY2VUeXBlLllVTlpBSV9PQV9VTklfQVBQX1g6XHJcbiAgICAgICAgdGhpcy5uYXRpdmUgPSB0aGlzLmluamVjdC5nZXQoWXVuemFpT2FVbmlBcHBYKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEZXZpY2VUeXBlLkRJTkdUQUxLOlxyXG4gICAgICAgIHRoaXMubmF0aXZlID0gdGhpcy5pbmplY3QuZ2V0KERpbmd0YWxrKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEZXZpY2VUeXBlLldFQ0hBVF9NUDpcclxuICAgICAgICB0aGlzLm5hdGl2ZSA9IHRoaXMuaW5qZWN0LmdldChXZWNoYXRNcCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRGV2aWNlVHlwZS5XRUNIQVRfTUlDUk86XHJcbiAgICAgICAgdGhpcy5uYXRpdmUgPSB0aGlzLmluamVjdC5nZXQoV2VjaGF0TWljcm8pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMubmF0aXZlID0gdGhpcy5pbmplY3QuZ2V0KEJyb3dzZXIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W6K6+5aSH57G75Z6LXHJcbiAgICovXHJcbiAgZ2V0VHlwZSgpOiBEZXZpY2VUeXBlIHtcclxuICAgIGNvbnN0IGFnZW50ID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtcclxuICAgIGlmICgveWliYW4vLnRlc3QoYWdlbnQpKSB7XHJcbiAgICAgIHJldHVybiBEZXZpY2VUeXBlLllJQkFOO1xyXG4gICAgfVxyXG4gICAgaWYgKC9taW5pcHJvZ3JhbS8udGVzdChhZ2VudCkpIHtcclxuICAgICAgcmV0dXJuIERldmljZVR5cGUuV0VDSEFUX01JQ1JPO1xyXG4gICAgfVxyXG4gICAgaWYgKC95dW56YWlfaW0vLnRlc3QoYWdlbnQpKSB7XHJcbiAgICAgIHJldHVybiBEZXZpY2VUeXBlLllVTlpBSV9JTTtcclxuICAgIH1cclxuICAgIGlmICgvdW5pLWFwcC14Ly50ZXN0KGFnZW50KSkge1xyXG4gICAgICByZXR1cm4gRGV2aWNlVHlwZS5ZVU5aQUlfT0FfVU5JX0FQUF9YO1xyXG4gICAgfVxyXG4gICAgaWYgKC9kaW5ndGFsay8udGVzdChhZ2VudCkpIHtcclxuICAgICAgcmV0dXJuIERldmljZVR5cGUuRElOR1RBTEs7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIC9pcGhvbmV8aXBvZHxpcGFkLy50ZXN0KGFnZW50KSAmJlxyXG4gICAgICAvbW9iaWxlLy50ZXN0KGFnZW50KSAmJlxyXG4gICAgICAveXVuemFpLy50ZXN0KGFnZW50KVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBEZXZpY2VUeXBlLklPUztcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgL2FuZHJvaWQvLnRlc3QoYWdlbnQpICYmXHJcbiAgICAgIC9tb2JpbGUvLnRlc3QoYWdlbnQpICYmXHJcbiAgICAgIC95dW56YWkvLnRlc3QoYWdlbnQpXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIERldmljZVR5cGUuQU5EUk9JRDtcclxuICAgIH1cclxuICAgIGlmICgvbWljcm9tZXNzZW5nZXIvLnRlc3QoYWdlbnQpKSB7XHJcbiAgICAgIHJldHVybiBEZXZpY2VUeXBlLldFQ0hBVF9NUDtcclxuICAgIH1cclxuICAgIHJldHVybiBEZXZpY2VUeXBlLkJST1dTRVI7XHJcbiAgfVxyXG59XHJcbiJdfQ==