ng-yunzai-mobile
Version:
1. 适配yunzai_uni_app_x
170 lines • 15.1 kB
JavaScript
/**
* @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} */
var 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 };
var DeviceService = /** @class */ (function () {
// tslint:disable-next-line: no-use-before-declare
function DeviceService(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 {?}
*/
DeviceService.prototype.ngOnInit = /**
* @return {?}
*/
function () {
};
/**
* 获取设备类型
*/
/**
* 获取设备类型
* @return {?}
*/
DeviceService.prototype.getType = /**
* 获取设备类型
* @return {?}
*/
function () {
/** @type {?} */
var 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 = function () { return [
{ 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" });
return DeviceService;
}());
export { DeviceService };
if (false) {
/** @type {?} */
DeviceService.prototype.native;
/**
* @type {?}
* @private
*/
DeviceService.prototype.inject;
/**
* @type {?}
* @private
*/
DeviceService.prototype.baseclient;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy15dW56YWktbW9iaWxlLyIsInNvdXJjZXMiOlsiZGV2aWNlcy9kZXZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFVQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFDLFdBQVcsRUFBYSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFLdEQsSUFBWSxVQUFVO0lBQ3BCLE1BQU07SUFDTixPQUFPLFdBQVk7SUFDbkIsS0FBSztJQUNMLEdBQUcsT0FBUTtJQUNYLEtBQUs7SUFDTCxPQUFPLFdBQVk7SUFDbkIsTUFBTTtJQUNOLFNBQVMsYUFBYztJQUN2QixNQUFNO0lBQ04sWUFBWSxnQkFBaUI7SUFDN0IsUUFBUTtJQUNSLEtBQUssU0FBVTtJQUNmLFlBQVk7SUFDWixTQUFTLGFBQWM7SUFDdkIsc0JBQXNCO0lBQ3RCLG1CQUFtQix1QkFBd0I7SUFDM0MsS0FBSztJQUNMLFFBQVEsWUFBYTtFQUN0Qjs7QUFJ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QUFDLEtBQUssQ0FBQztZQUM5QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNwQjtZQUNBLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQztTQUN2QjtRQUNELElBQ0UsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFDcEI7WUFDQSxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUM7U0FDM0I7UUFDRCxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQyxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUM7U0FDN0I7UUFDRCxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUM7SUFDNUIsQ0FBQzs7Z0JBeEZGLFVBQVUsU0FBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBekMyQixRQUFRO2dEQWtEckIsTUFBTSxTQUFDLFdBQVc7Ozt3QkE1RGpDO0NBMElDLEFBekZELElBeUZDO1NBdEZZLGFBQWE7OztJQUN4QiwrQkFBbUI7Ozs7O0lBTVAsK0JBQXdCOzs7OztJQUN4QixtQ0FBbUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBAQXV0aG9yOiBjdWloYW9uYW5cclxuICogQEVtYWlsOiBkZXZjdWlAb3V0bG9vay5jb21cclxuICogQERhdGU6IDIwMjEtMDQtMDcgMTM6NTU6MTlcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0wNyAxNDowODoyNFxyXG4gKiBATGFzdEVkaXRvcnM6IGN1aWhhb25hblxyXG4gKiBARGVzY3JpcHRpb246IEJhc2ljIGRlc2NyaXB0aW9uXHJcbiAqIEBGaWxlUGF0aDogL2FuZ3VsYXItbW9iaWxlLW5wbS1wYWNrYWdlL3Byb2plY3RzL25nLXl1bnphaS1tb2JpbGUvZGV2aWNlcy9kZXZpY2Uuc2VydmljZS50c1xyXG4gKiBATElDRU5TRTogTk9ORVxyXG4gKi9cclxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QmFzZURldmljZX0gZnJvbSBcIi4vYmFzZS5kZXZpY2VcIjtcclxuaW1wb3J0IHtBbmRyb2lkfSBmcm9tIFwiLi9hbmRyb2lkXCI7XHJcbmltcG9ydCB7SU9TfSBmcm9tIFwiLi9pb3NcIjtcclxuaW1wb3J0IHtXZWNoYXRNcH0gZnJvbSBcIi4vd2VjaGF0Lm1wXCI7XHJcbmltcG9ydCB7V2VjaGF0TWljcm99IGZyb20gXCIuL3dlY2hhdC5taWNyb1wiO1xyXG5pbXBvcnQge0Jyb3dzZXJ9IGZyb20gXCIuL2Jyb3dzZXJcIjtcclxuaW1wb3J0IHtZaWJhbn0gZnJvbSBcIi4veWliYW5cIjtcclxuaW1wb3J0IHtZdW56YWlJbX0gZnJvbSBcIi4veXVuemFpLmltXCI7XHJcbmltcG9ydCB7RGluZ3RhbGt9IGZyb20gXCIuL2Rpbmd0YWxrXCI7XHJcbmltcG9ydCB7QkFTRV9DTElFTlQsIEJhc2VDbGllbnR9IGZyb20gXCIuLi9jbGllbnRcIjtcclxuaW1wb3J0IHtZdW56YWlPYVVuaUFwcFh9IGZyb20gXCIuL3l1bnphaS5vYS11bmktYXBwLXhcIjtcclxuXHJcbi8qKlxyXG4gKiDorr7lpIfnsbvlnotcclxuICovXHJcbmV4cG9ydCBlbnVtIERldmljZVR5cGUge1xyXG4gIC8vIOa1j+iniOWZqFxyXG4gIEJST1dTRVIgPSBcIkJST1dTRVJcIixcclxuICAvLyDoi7nmnpxcclxuICBJT1MgPSBcIklPU1wiLFxyXG4gIC8vIOWuieWNk1xyXG4gIEFORFJPSUQgPSBcIkFORFJPSURcIixcclxuICAvLyDlhazkvJflj7dcclxuICBXRUNIQVRfTVAgPSBcIldFQ0hBVF9NUFwiLFxyXG4gIC8vIOWwj+eoi+W6j1xyXG4gIFdFQ0hBVF9NSUNSTyA9IFwiV0VDSEFUX01JQ1JPXCIsXHJcbiAgLy8gWUlCQU5cclxuICBZSUJBTiA9IFwiWUlCQU5cIixcclxuICAvLyBZVU5aQUlfSU1cclxuICBZVU5aQUlfSU0gPSBcIllVTlpBSV9JTVwiLFxyXG4gIC8vIFlVTlpBSV9PQV9VTklfQVBQX1hcclxuICBZVU5aQUlfT0FfVU5JX0FQUF9YID0gXCJZVU5aQUlfT0FfVU5JX0FQUF9YXCIsXHJcbiAgLy8g6ZKJ6ZKJXHJcbiAgRElOR1RBTEsgPSBcIkRJTkdUQUxLXCIsXHJcbn1cclxuXHJcbmRlY2xhcmUgbGV0IHd4OiBhbnk7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZXZpY2VTZXJ2aWNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBuYXRpdmU6IEJhc2VEZXZpY2U7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11c2UtYmVmb3JlLWRlY2xhcmVcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdDogSW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgQEluamVjdChCQVNFX0NMSUVOVCkgcHJpdmF0ZSBiYXNlY2xpZW50OiBCYXNlQ2xpZW50XHJcbiAgKSB7XHJcblxyXG4gICAgaWYgKHRoaXMuYmFzZWNsaWVudC5hbHdheXNCcm93c2VyKSB7XHJcbiAgICAgIHRoaXMubmF0aXZlID0gdGhpcy5pbmplY3QuZ2V0KEJyb3dzZXIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmdldFR5cGUoKSkge1xyXG4gICAgICBjYXNlIERldmljZVR5cGUuWUlCQU46XHJcbiAgICAgICAgdGhpcy5uYXRpdmUgPSB0aGlzLmluamVjdC5nZXQoWWliYW4pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIERldmljZVR5cGUuQU5EUk9JRDpcclxuICAgICAgICB0aGlzLm5hdGl2ZSA9IHRoaXMuaW5qZWN0LmdldChBbmRyb2lkKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEZXZpY2VUeXBlLklPUzpcclxuICAgICAgICB0aGlzLm5hdGl2ZSA9IHRoaXMuaW5qZWN0LmdldChJT1MpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIERldmljZVR5cGUuWVVOWkFJX0lNOlxyXG4gICAgICAgIHRoaXMubmF0aXZlID0gdGhpcy5pbmplY3QuZ2V0KFl1bnphaUltKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEZXZpY2VUeXBlLllVTlpBSV9PQV9VTklfQVBQX1g6XHJcbiAgICAgICAgdGhpcy5uYXRpdmUgPSB0aGlzLmluamVjdC5nZXQoWXVuemFpT2FVbmlBcHBYKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEZXZpY2VUeXBlLkRJTkdUQUxLOlxyXG4gICAgICAgIHRoaXMubmF0aXZlID0gdGhpcy5pbmplY3QuZ2V0KERpbmd0YWxrKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBEZXZpY2VUeXBlLldFQ0hBVF9NUDpcclxuICAgICAgICB0aGlzLm5hdGl2ZSA9IHRoaXMuaW5qZWN0LmdldChXZWNoYXRNcCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRGV2aWNlVHlwZS5XRUNIQVRfTUlDUk86XHJcbiAgICAgICAgdGhpcy5uYXRpdmUgPSB0aGlzLmluamVjdC5nZXQoV2VjaGF0TWljcm8pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMubmF0aXZlID0gdGhpcy5pbmplY3QuZ2V0KEJyb3dzZXIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W6K6+5aSH57G75Z6LXHJcbiAgICovXHJcbiAgZ2V0VHlwZSgpOiBEZXZpY2VUeXBlIHtcclxuICAgIGNvbnN0IGFnZW50ID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtcclxuICAgIGlmICgveWliYW4vLnRlc3QoYWdlbnQpKSB7XHJcbiAgICAgIHJldHVybiBEZXZpY2VUeXBlLllJQkFOO1xyXG4gICAgfVxyXG4gICAgaWYgKC9taW5pcHJvZ3JhbS8udGVzdChhZ2VudCkpIHtcclxuICAgICAgcmV0dXJuIERldmljZVR5cGUuV0VDSEFUX01JQ1JPO1xyXG4gICAgfVxyXG4gICAgaWYgKC95dW56YWlfaW0vLnRlc3QoYWdlbnQpKSB7XHJcbiAgICAgIHJldHVybiBEZXZpY2VUeXBlLllVTlpBSV9JTTtcclxuICAgIH1cclxuICAgIGlmICgvdW5pLWFwcC14Ly50ZXN0KGFnZW50KSkge1xyXG4gICAgICByZXR1cm4gRGV2aWNlVHlwZS5ZVU5aQUlfT0FfVU5JX0FQUF9YO1xyXG4gICAgfVxyXG4gICAgaWYgKC9kaW5ndGFsay8udGVzdChhZ2VudCkpIHtcclxuICAgICAgcmV0dXJuIERldmljZVR5cGUuRElOR1RBTEs7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIC9pcGhvbmV8aXBvZHxpcGFkLy50ZXN0KGFnZW50KSAmJlxyXG4gICAgICAvbW9iaWxlLy50ZXN0KGFnZW50KSAmJlxyXG4gICAgICAveXVuemFpLy50ZXN0KGFnZW50KVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBEZXZpY2VUeXBlLklPUztcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgL2FuZHJvaWQvLnRlc3QoYWdlbnQpICYmXHJcbiAgICAgIC9tb2JpbGUvLnRlc3QoYWdlbnQpICYmXHJcbiAgICAgIC95dW56YWkvLnRlc3QoYWdlbnQpXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIERldmljZVR5cGUuQU5EUk9JRDtcclxuICAgIH1cclxuICAgIGlmICgvbWljcm9tZXNzZW5nZXIvLnRlc3QoYWdlbnQpKSB7XHJcbiAgICAgIHJldHVybiBEZXZpY2VUeXBlLldFQ0hBVF9NUDtcclxuICAgIH1cclxuICAgIHJldHVybiBEZXZpY2VUeXBlLkJST1dTRVI7XHJcbiAgfVxyXG59XHJcbiJdfQ==