UNPKG

1.73 kBJavaScriptView Raw
1var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3 return new (P || (P = Promise))(function (resolve, reject) {
4 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7 step((generator = generator.apply(thisArg, _arguments || [])).next());
8 });
9};
10import MobileDetect from 'mobile-detect';
11let md;
12let preTitle = document.title;
13let isLoadDdEntry = false;
14export function getMobileDetect() {
15 if (!md) {
16 md = new MobileDetect(navigator.userAgent);
17 }
18 return md;
19}
20export function setTitle(title) {
21 return __awaiter(this, void 0, void 0, function* () {
22 if (preTitle === title)
23 return title;
24 document.title = title;
25 preTitle = title;
26 if (process.env.SUPPORT_DINGTALK_NAVIGATE !== 'disabled' && isDingTalk()) {
27 if (!isLoadDdEntry) {
28 isLoadDdEntry = true;
29 require('dingtalk-jsapi/platform');
30 }
31 const setDingTitle = require('dingtalk-jsapi/api/biz/navigation/setTitle').default;
32 setDingTitle({ title });
33 }
34 return title;
35 });
36}
37export function isWeixin() {
38 const md = getMobileDetect();
39 return md.match(/MicroMessenger/ig);
40}
41export function isDingTalk() {
42 const md = getMobileDetect();
43 return md.match(/DingTalk/ig);
44}